Задача B. Открытка программиста

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

Условие

На день святого Валентина Дима решил сделать подарить своей девушке Лене открытку с сердечками. Лена учится в ДВФУ на программиста, поэтому Диме хотелось сделать программистскую открытку.

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

Изображение открытки представляет собой прямоугольную таблицу, состоящую из символов "." (ASCII 46), "/" (ASCII 47), "V" (ASCII 86), "\" (ASCII 92), "^" (ASCII 94). На открытке изображено n сердец. Каждое сердце задаётся координатами центра x y и размером d. Координата x отсчитывается по горизонтали слева направо, а координата y — по вертикали сверху вниз.

Изображение сердца состоит из шести наклонных линий, состоящих из символов "/" и "\". Две линии, образующие нижний контур сердца, имеют длину по d символов, две линии, образующие внешнюю часть верхнего контура, имеют длину по ⌊(d + 1) / 2 символов, а две линии, образующие внутреннюю часть верхнего контура, имеют длину по ⌊(d − 1) / 2 символов.

Центр и нижняя точка сердца обозначены символами "V". Если d чётно, то две верхние точки сердца обозначены символами "^".

Изображение открытки должно иметь минимально возможный размер, охватывающий изображения всех заданных сердец. Все позиции, не занятые изображениями сердец, должны содержать символ ".".

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

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

Входной файла содержит натуральное число n  — количество сердец, за которым следует n троек натуральных чисел xi yi di.

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

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

Ограничения

1 ≤ n ≤ 102

1 ≤ xi, yi, di ≤ 50

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

Входной файл (input.txt) Выходной файл (output.txt)
1
3
4 4 3
7 7 6
17 11 1
./\./\............
/..^..\..^........
\./.\././.\.......
./...\./...\......
/.\./.V.....\.....
\..V......../.....
.\........./......
..\......./.......
...\...../...../V\
....\.../......\./
.....\./........V.
......V...........

Разбор

Данная задача является типичной задачей "на реализацию". Самое простое, из предложенных жюри решений, использует двумерный массив символов, в котором последовательно отмечает символы каждого нового сердца, описанного условии. Затем решение находит ограничивающий прямоугольник для полученного рисунка и выводит содержимое этого прямоугольника в файл.

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

Наблюдения, упрощающие реализацию:


0.075s 0.011s 13