0243. Видеодрайвер
Имя входного файла: | driver.in |
Имя выходного файла: | driver.out |
Ограничение по времени: | 2 s |
Ограничение по памяти: | 256 megabytes |
Чёрный Кот обожает всем известную свободную операционную систему. К сожалению, драйверы для многих редких устройств в этой системе отсутствуют, поэтому Кот пишет их сам. Недавно Кот обнаружил в шкафу старый компьютер. Конечно же, первым делом он попробовал установить туда свою любимую операционную систему, но его ждала неудача – видеокарта этого древнего компьютера поддерживает только текстовый режим экрана, а установщик системы работает в графическом режиме. Кот не сдавался и уже через некоторое время экран компьютера радовал его приветствием forest:~#.
Кот решил немного доработать видеодрайвер, чтобы иметь возможность рисовать окна при помощи символов псевдографики. Однако в знакогенераторе видеокарты обнаружились только символы | (ASCII-код 124), + (ASCII-код 43) и - (ASCII-код 45). Кот решил, что для начала этого будет достаточно и он ограничится только вертикальными и горизонтальными линиями.
Вам требуется помочь Коту написать фрагмент драйвера, который по набору выводимых на экран вертикальных и горизонтальных линий будет генерировать матрицу символов для видеокарты. Матрица символов генерируется по следующим правилам:
- Каждая линия задаётся позициями двух символов в матрице. Для горизонтальной линии эти символы должны быть расположены в одной строке, для вертикальной – в одном столбце. Эти символы будем называть начальным и конечным соответственно.
- Горизонтальная линия <<проходит>> через все символы в строке, расположенные между начальным и конечным (включительно).
- Вертикальная линия <<проходит>> через все символы в столбце, расположенные между начальным и конечным (также включительно).
- Если через символ <<проходит>> горизонтальная линия, в матрице символов для видеокарты требуется выдать символ -.
- Если через символ <<проходит>> вертикальная линия, в матрице символов для видеокарты требуется выдать символ |.
- Если через символ <<проходит>> и горизонтальная, и вертикальная линия. В матрице символов для видеокарты требуется выдать символ +.
- Если через символ не <<проходит>> ни одна линия, в матрице символов для видеокарты требуется вывести пробел.
Формат входного файла
В первой строке входного файла находится единственное число N – количество линий (горизонтальных и вертикальных) (1 ≤ N ≤ 104). Во второй строке находятся два числа R и C – количество строк и столбцов в матрице символов видеокарты (1 ≤ R, C ≤ 100). Последующие N строк содержат по четыре числа r1, c1, r2, c2, описывающие выводимые на экран линии (1 ≤ r1, r2 ≤ R, 1 ≤ c1, c2 ≤ C), r1, c1 – номера строки и столбца начального символа линии, r2, c2 – соответственно номера строки и столбца конечного символа линии. Гарантируется, что каждая линия является либо горизонтальной (в таком случае r1 = r2), либо вертикальной (в таком случае c1 = c2). Гарантируется, что начальная и конечная точки не совпадают.
Формат выходного файла
Выведите R строк по C символов в каждой – искомую матрицу символов.
Пример:
driver.in | driver.out |
---|---|
4 5 5 1 1 1 5 1 1 5 1 1 5 5 5 5 1 5 5 | +---+ |...| |...| |...| +---+ |
Источник: VI Сетевая районная олимпиада Республики Карелия по информатике. 3 декабря 2011 г.
Автор: Денис Денисов
Обсудить Отправить решение
Версия для печати