시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 1024 MB | 0 | 0 | 0 | 0.000% |
В комнате у Аркадия Семеновича Тапкина стоят электронные часы. Цифры на этих часах показываются в специальной псевдографике. А именно каждое поле, на котором изображается цифра, состоит из $w$ ячеек в ширину и $h$ ячеек в высоту (при этом ячейки на поле имеют форму квадратов).
Но недавно у Аркадия Семеновича появилась проблема. Последнее время он стал плохо видеть. В связи с этим он хочет увеличить изображение этих цифр. Он уже приладил старый $19"$ монитор к часам, и теперь дело осталось за малым. Осталось написать программу, которая будет рисовать цифры на дисплее. Аркадий Семенович хочет увеличить изображение в $k$ раз и сделать толщину линий равной $d$. Помогите ему в этом.
Опишем более формально понятие <<увеличить в $k$ раз>>. Занумеруем ячейки поля $w \times h$ сверху вниз и слева направо. Таким образом, верхняя левая ячейка имеет координаты $(0, 0)$, правая нижняя --- $(w - 1, h - 1)$, правая верхняя --- $(w - 1, 0)$, левая нижняя --- $(0, h - 1)$. Кроме этого, введем декартову прямоугольную систему координат так, что начало координат находится в центре верхней левой ячейки, ось $Ox$ направлена вправо, ось $Oy$ --- вниз, длину единичного отрезка примем равной длине стороны ячейки. Таким образом, координаты центра ячейки совпадают с ее координатами во введенной нумерации.
Каждая десятичная цифра задается набором составляющих ее изображение отрезков. Для простоты каждый из отрезков либо параллелен одной из координатных осей, либо идет под углом в 45 градусов к ней.
Увеличенная в $k$ раз цифра рисуется на поле размером $(w - 1) \cdot (k - 1) + w$ ячеек по горизонтали на $(h - 1) \cdot (k - 1) + h$ ячеек по вертикали.
При увеличении некоторой цифры в $k$ раз производятся следующие операции. Координаты точек, являющихся концами отрезков, составляющих цифру, умножаются на $k$. После этого закрашиваются те ячейки, через центры которых проходят эти отрезки. Эти ячейки будем называть основными.
После этого, для того, чтобы получить толщину линий равную $d$, дополнительно закрашиваются те ячейки, центры которых располагаются на расстоянии, не превышающем $(d - 1)$ от центров основных ячеек. Расстоянием между точками $A(x_A, y_A)$ и $B(x_B, y_B)$ будем называть число $\rho(A, B) = |x_A - x_B| + |y_A - y_B|$.
По описанию цифры и параметрам $k$ и $d$ выведите изображение цифры, увеличенное в $k$ раз, с толщиной линий $d$.
Первая строка входного файла содержит целые числа $k$ и $d$ ($1 \le k \le 100$, $1 \le d \le 500$). Вторая строка входного файла содержит целые числа $w$ и $h$ ($1 \le w, h \le 10$).
Третья строка входного файла содержит целое число $n$ ($1 \le n \le 100$) --- количество отрезков в описании цифры. Далее следуют $n$ строк, каждая из которых описывает один отрезок. Описание отрезка состоит из четырех целых чисел: $x_1$, $y_1$, $x_2$, $y_2$ ($0 \le x_1, x_2 < w$, $0 \le y_1, y_2 < h$) --- координат концов отрезка.
Каждый из отрезков либо параллелен одной из координатных осей, либо идет под углом в 45 градусов к ней. Все отрезки имеют ненулевую длину.
Выходной файл должен содержать ровно $(h - 1) \cdot (k - 1) + h$ строк по $(w - 1) \cdot (k - 1) + w$ символов в каждой, $j$-ый символ $i$-ой строки должен быть равен символу <<*
>> (звездочка), если ячейка с центром в точке $(j,i)$ закрашена, и символу <<.
>> (точка) --- иначе.
1 1 4 6 2 0 0 3 0 3 0 3 5
**** ...* ...* ...* ...* ...*
2 1 4 6 4 0 0 3 0 3 0 3 2 3 2 0 5 0 5 3 5
******* ......* ......* ......* ......* .....*. ....*.. ...*... ..*.... .*..... *******
2 2 4 6 4 0 0 3 0 3 0 3 2 3 2 0 5 0 5 3 5
******* ******* .....** .....** .....** ....*** ...***. ..***.. .***... ******* *******