Logo
(追記) (追記ここまで)

21473번 - Цифровое табло 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB98888.889%

문제

В комнате у Аркадия Семеновича Тапкина стоят электронные часы. Цифры на этих часах показываются в специальной псевдографике. А именно каждое поле, на котором изображается цифра, состоит из $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 1
4 6
2
0 0 3 0
3 0 3 5

예제 출력 1

****
...*
...*
...*
...*
...*

예제 입력 2

2 1
4 6
4
0 0 3 0
3 0 3 2
3 2 0 5
0 5 3 5

예제 출력 2

*******
......*
......*
......*
......*
.....*.
....*..
...*...
..*....
.*.....
*******

예제 입력 3

2 2
4 6
4
0 0 3 0
3 0 3 2
3 2 0 5
0 5 3 5

예제 출력 3

*******
*******
.....**
.....**
.....**
....***
...***.
..***..
.***...
*******
*******

힌트

출처

Olympiad > Russian Olympiad in Informatics > Russia Team High School Programming Contest > Russia Team High School Programming Contest 2006 C번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /