Задача A. Фейерверк

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

Условие

Ваша задача заключается в том, чтобы изобразить фейерверк в ASCII-графике. Фейерверк состоит из одного или нескольких вспышек. Каждая вспышка имеет целые радиус R и уровень L, а также изображается символом '*' (ASCII 42) в центре и 8 лучами: 4 горизонтальных ('-', ASCII 45) и вертикальных ('|', ASCII 124) луча, каждый длиной R + E символов (где E – дополнительный параметр, одинаковый для всех вспышек); 4 диагональных ('/', ASCII 47 и '\', ASCII 92) луча, каждый длиной R символов.

Если уровень вспышки больше 1, то конец каждого горизонтального или вертикального луча порождает другую вспышку радиусом R − 1 и уровнем L − 1. Дочерняя вспышка имеет только 7 лучей, потому что луч в направлении родительской вспышки не изображается.

Фейерверк начинается с одной вспышки. В выходной файл должен быть выведен фейерверк в виде квадрата символов, имеющего минимальный размер, достаточный для изображения всех вспышек. Символы, не принадлежащие ни к какой вспышке, должны выводиться как '.' (ASCII 46). Символы, принадлежащие более чем одной вспышке, должны выводиться как 'x' (ASCII 120).

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

Входной файл содержит целые числа L R E — уровень, радиус начальной вспышки и дополнительный параметр длины для горизонтальных/вертикальных лучей.

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

Выходной файл должен содержать изображение фейерверка

Ограничения

1 ≤ L ≤ R ≤ 10, 1 ≤ E ≤ 20

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

Входной файл (input.txt) Выходной файл (output.txt)
1
1 1 1
..|..
.\|/.
--*--
./|\.
..|..
2
2 4 1
..........|..........
.......\..|../.......
........\.|./........
.........\|/.........
......----*----......
........./|\.........
....|.\./.|.\./.|....
.\..|..x..|..x..|../.
..\.|./.\.|./.\.|./..
...\|/...\|/...\|/...
----*-----*-----*----
.../|\.../|\.../|\...
../.|.\./.|.\./.|.\..
./..|..x..|..x..|..\.
....|./.\.|./.\.|....
.........\|/.........
......----*----......
........./|\.........
......../.|.\........
......./..|..\.......
..........|..........

Задача B. Компьютерное зрение

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

Условие

Ваша команда сейчас занимается разработкой нового робота. Вам поручена ответственная задача — научить робота находить на картинке ромбы.

Камера робота позволяет записывать черно-белые прямоугольные изображения шириной c и высотой r ячеек. Черная ячейка на изображении кодируется символом '#', а белая символом '@'. Ромбом называется связная область изображения, целиком состоящая из черных ячеек и удовлетворяющая следующим критериям:

Например, вот корректные изображения ромбов имеющих высоту 2 (обратите внимание, что к ромбу могут прилегать и другие черные ячейки):

@@#@@ @###@ #####

@###@ ##### #####

@@#@@ @@#@@ #####

А вот примеры некорректных ромбов:

@@#@@ @###@ @@@@@

@#@#@ @@### @@@@@

@@#@@ @@#@@ @@@@@

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

Формат входных данных

В первой строке находятся два натуральных числа 1 ≤ r, c ≤ 1000 — высота и ширина изображения.

В следующих r строках находятся по c символов '@' или '#', означающих цвет ячеек изображения. '@' - белый цвет, '#' — черный цвет.

Формат выходных данных

Выведите одно целое число — максимальную высоту ромба на изображении. Если на изображении отсутствуют ромбы, то выведите 0.

Ограничения

1 ≤ r, c ≤ 10 — 40 баллов

1 ≤ r, c ≤ 100 — 20 баллов

1 ≤ r, c ≤ 1000 — 40 баллов

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

Стандартный вход Стандартный выход
1
5 5
@@#@@
@###@
#####
@###@
@@#@@
3
2
3 5
@#@#@
#####
@#@#@
2
3
3 3
@@@
@@@
@@@
0

Задача C. Куб и конус

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

Условие

Создайте 3D модель, состоящую из куба и конуса. Нижнее основание куба со стороной 2м должно лежать в центре плоскости XY. Центр нижней грани куба должен совпадать с началом координат. Рёбра куба должны быть параллельны осям координат. Основание конуса должно полностью лежать на верхней грани куба. Диаметр основания равен 2м. Высота конуса равна 2м. Ребра, которые являются образующими конуса, должны быть сглажены. Остальные не должны быть сглажены. Модель не должна использовать материалы и текстуры.

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

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

Рис. 1
Рис. 2

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

TypePoint Light
Color(255, 255, 255)
Power1000W
Specular1.00
Radius0.1m
Location(4.07625 m, 1.00545 m, 5.90386 m)
Rotation(37.3, 3.16, 107)

Камера:

Focal Length50mm

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

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

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

Входной файл (input.txt) Выходной файл (output.png)
1
3.247246 0.572713 6.586146
0.623353 -0.000000 1.745370
Смотри рис. 1
2
4.063557 6.389879 5.386734
1.150240 -0.000000 2.575168
Смотри рис. 2

Задача D. Два шара

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

Условие

Вам поручено провести важное научное исследование — изучить упругое столкновение двух тел. Чтобы упростить задачу, вам предлагается сцена в Unity с двумя шарами. В этой сцене уже реализована механика движения и столкновения тел. Все, что вам осталось сделать — это написать дополнительный скрипт, который засекает определенное время и выводит координаты мячей после моделирования их движения в течении этого времени. Для взаимодействия со сценой вы можете использовать любые функции Unity, а также дополнительный объект — controller. Однако, весь ваш код должен находиться в классе Solution. Другие изменения в сцене учитываться не будут.

Объект controller предоставляет следующие функции для работы со сценой:

Изначально система находится на паузе. Обратите внимание, что шары начнут двигаться сами, как только вы вызовете метод controller.Resume(). Также, заметьте, что требуемое время моделирования может быть достаточно большим. Шары двигаются без трения и ускорения.

Проект https://github.com/Supermagzzz/NTI_TASK1, Вам осталось реализовать класс Solution.

Вы можете тестировать свои решения, изменяя данные, содержащиеся в файле input.txt в репозитории проекта.

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

Входной файл содержит пять строк. В первой строке содержится требуемое время моделирования t. Во второй и третьей строке содержатся координаты первого и второго шаров, соответственно xi, yi, zi. В четвертой и пятой строке содержатся начальные скорости первого и второго шаров, соответственно vx, vy, vz. Все числа во входном файле вещественные. Реализовывать считывание данных с файла input.txt не нужно. Для получения данных используйте функции, реализованные в controller.

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

Файл с решением должен содержать реализацию класса Solution. Координаты, полученные с помощью вашего решения, должны иметь погрешность не больше одной единицы в координатах Unity. Реализовывать вывод в файл output.txt не нужно. Для вывода ответа используйте метод setAnswer(), описанный выше.

Ограничения

0 ≤ t ≤ 105

1000 ≤ xi, zi ≤ 1000

1000 ≤ vx, vz ≤ 1000

yi = 0.5, vy = 0

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

Входной файл (input.txt) Выходной файл (output.txt)
1
10
-5 0.5 0
5 0.5 0
5 0 1
-5 0 1
-46.00008
0.5005372
9.999964
45.9999
0.5
9.999917

0.190s 0.008s 23