0243. Видеодрайвер

Input file name: driver.in
Output file name: driver.out
Time limit: 2 s
Memory limit: 256 megabytes

Чёрный Кот обожает всем известную свободную операционную систему. К сожалению, драйверы для многих редких устройств в этой системе отсутствуют, поэтому Кот пишет их сам. Недавно Кот обнаружил в шкафу старый компьютер. Конечно же, первым делом он попробовал установить туда свою любимую операционную систему, но его ждала неудача – видеокарта этого древнего компьютера поддерживает только текстовый режим экрана, а установщик системы работает в графическом режиме. Кот не сдавался и уже через некоторое время экран компьютера радовал его приветствием forest:~#.

Кот решил немного доработать видеодрайвер, чтобы иметь возможность рисовать окна при помощи символов псевдографики. Однако в знакогенераторе видеокарты обнаружились только символы | (ASCII-код 124), + (ASCII-код 43) и - (ASCII-код 45). Кот решил, что для начала этого будет достаточно и он ограничится только вертикальными и горизонтальными линиями.

Вам требуется помочь Коту написать фрагмент драйвера, который по набору выводимых на экран вертикальных и горизонтальных линий будет генерировать матрицу символов для видеокарты. Матрица символов генерируется по следующим правилам:

  1. Каждая линия задаётся позициями двух символов в матрице. Для горизонтальной линии эти символы должны быть расположены в одной строке, для вертикальной – в одном столбце. Эти символы будем называть начальным и конечным соответственно.
  2. Горизонтальная линия <<проходит>> через все символы в строке, расположенные между начальным и конечным (включительно).
  3. Вертикальная линия <<проходит>> через все символы в столбце, расположенные между начальным и конечным (также включительно).
  4. Если через символ <<проходит>> горизонтальная линия, в матрице символов для видеокарты требуется выдать символ -.
  5. Если через символ <<проходит>> вертикальная линия, в матрице символов для видеокарты требуется выдать символ |.
  6. Если через символ <<проходит>> и горизонтальная, и вертикальная линия. В матрице символов для видеокарты требуется выдать символ +.
  7. Если через символ не <<проходит>> ни одна линия, в матрице символов для видеокарты требуется вывести пробел.

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

В первой строке входного файла находится единственное число 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.indriver.out
4 5 5 1 1 1 5 1 1 5 1 1 5 5 5 5 1 5 5 +---+ |...| |...| |...| +---+
Примечание: в примере пробелы заменены на точки для большей наглядности. Вам следует выводить именно пробелы. Позаботьтесь о том, чтобы ни в какой строке не было бы лишних пробелов.


Source: VI Сетевая районная олимпиада Республики Карелия по информатике. 3 декабря 2011 г.
Author: Денис Денисов

Discuss       Submit a solution



Printable version