Задача A. Прогулка по сфере

Автор:Dmitriy Merzlyakov   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:512 Мб
Выходной файл:output.txt  
Максимальный балл:100  

Условие

Некоторая планета Сигма имеет форму сферы. На Сигме есть только три дороги в виде больших окружностей в плоскостях OXY, OXZ и OYZ, пересечения которых пронумерованы так, как показано на рис. 1. Будем считать, что длина дороги между любыми двумя пересечениями равна 1, а сами точки пересечений назовём пунктами.

Юный программист Вася находится в пункте a и смотрит по направлению дороги, которая ведёт в пункт c. Он собирается совершить прогулку по этой планете до пункта b так, чтобы, оказавшись в нём, смотреть по направлению дороги к d. Однако не всё так просто: на планете действует запрет на совершение поворотов вокруг себя при движении.

Например, пусть вы находитесь в пункте 1 и смотрите вдоль дороги, которая ведёт в пункт 2. При движении в 2 вы будете идти прямо, затем, поскольку поворачиваться запрещено, из 2 в 3 вы сможете двигаться только левым боком, а возвращаясь из 3 в 1 вы будете перемещаться спиной вперёд. В результате этих действий вы снова окажетесь в пункте 1, однако теперь вы смотрите не на пункт 2, а на пункт 3 (см. рис. 2).

Рис. 1
Рис. 2

Заметив это, Вася понял, что если правильно построить маршрут, то он сможет добраться в b и развернуться в процессе прохождения пути так, чтобы при этом будучи в b смотреть по направлению в d. Вася не хочет затратить на это много времени и поэтому, чтобы оптимизировать свой путь, он хочет написать программу, которая по заданным параметрам a, b, c, d определила бы длину кратчайшего пути l из a в b при указанных условиях, а также выдавала бы последовательность пунктов, которые составляют этот путь. Помогите Васе написать такую программу.

Примечание

В качестве направлений c и d выбираются пункты, которые находятся от пунктов a и b соответственно на расстоянии 1. Например, находясь в пункте a = 1 можно смотреть в один из 4 пунктов c ∈ {2, 3, 4, 5}.

Гарантируется, что пара чисел (a, c) отличается от пары чисел (b, d), т.е. a ≠ b и c ≠ d одновременно.

Формат входного файла

В первой строке содержаться натуральные числа a и c, во второй строке находятся числа b и d.

Формат выходного файла

В первой строке требуется вывести одно число l – длину кратчайшего маршрута из a в b.

Во второй строке нужно вывести сам маршрут в виде последовательности чисел (через пробел) x1 x2... xl, где xi – номер i-го пункта в маршруте.

Если оптимальных маршрутов несколько, выведите любой из них.

Ограничения

1a, b, c, d6, ac, bd

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
4 3
6 4
2
5 6
2
1 5
2 3
3
4 3 2

Задача B. Пикап

Автор:Грушков Р.В.   Ограничение времени:5 сек
Входной файл:input.txt   Ограничение памяти:1512 Мб
Выходной файл:output.png  
Максимальный балл:100  

Условие

Вам необходимо разработать 3D модель пикапа.

Центр нижней грани основания модели должен находится в точке начала координат. На рисунке 1 каждая клетка имеет размеры 10 x 10 сантиметров. Общие размеры также указаны на рисунке 1. Модель должна состоять из детали кузова и 4-х одинаковых деталей колеса. Размеры колеса должны быть 20 x 20 x 20 сантиметров. В детали кузова под колеса должны быть сделаны квадратные выемки.

Имеются рендеры из viewport с нескольких ракурсов — рис. 2, рис. 3. Обратите внимание, что рендеры также несут дополнительную информацию о форме, расположении и размерах модели. Модель не должна содержать текстур.

Модель проверяется на основе попиксельного сравнения рендеров с указанных во входном файле ракурсов. К модели применяется автоматически созданный материал со случайно подобранным оттенком. В качестве метрики для сравнения рендеров моделей используется величина dssim по каждому цветовому каналу. Баллы за каждый тест начисляются в зависимости от величины метрики.

Рис. 1
Рис. 2
Рис. 3
Рис. 4
Рис. 5

Источник света:

TypeSun
Color(255, 255, 255)
Specular1.00
Strength10.0
Location(10 m, -10 m, 20 m)
Rotation(30, 30, 0)

Камера:

Focal Length50mm

Render Engine: Eevee

Формат входного файла

Во входном файле содержатся x, y, z — координаты камеры в метрах и rx, ry, rz — углы поворота в радианах.

Формат выходного файла

В качестве решения следует отправлять файл формата OBJ (расширение .obj). Размер файла не должен превышать 999997 Байт. Единицы измерения должны соответствовать физическим величинам. Координаты вершин модели должны быть указаны в метрах.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.png)
1
-0.727000 2.353000 -1.688000
-0.969928 -3.141593 0.299663
2
-0.042000 -2.635000 0.443000
1.404253 -0.000000 -0.015938
Смотри рис. 5

Задача C. Class Monster

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:100  

Условие

Требуется написать на языке C# класс Monster реализующий интерфейс IMonster.


namespace Fefu
{
    public class WrongDataException : Exception
    {
        public WrongDataException() {}
        public WrongDataException(string message) : base(message) {}
        public WrongDataException(string message, Exception innerException) : base(message, innerException) {}
    }

    public interface IMonster
    {
    }
}

Класс Monster должен находиться в namespace Fefu.

Сеттер каждого свойства должен позволять присваивать только значения, удовлетворяющее указанному в соответствующем комментарии условию, в остальных случаях требуется бросать исключение WrongDataException.

В решении должен быть только класс Monster. WrongDataException и IMonster отправлять не нужно.


1.163s 0.012s 33