Вы можете помнить эти рисунки с того момента, когда вы были ребенком, но теперь пора позволить компьютеру нарисовать их (в полном блеске ascii). Получайте удовольствие!
Описание:
Ввод представляет собой несколько строк (завершенных новой строкой), которые описывают "поле". В этом поле есть "числа" (разделенные пробелами). Все строки можно считать одинаковой длиной (вы можете заполнить пробелы до конца).
- числа всегда начинаются с 1
- они следуют порядку натуральных чисел: каждое "следующее число" увеличивается с помощью 1
- каждое число окружено (по крайней мере) одним пробелом слева и справа
Задача:
Нарисуйте линии между этими числами в натуральном порядке
(1 -> 2 -> 3 -> ...N)
(предположим, что N <= 99) со следующими характеристиками:
- заменить номер символом '
+
' - для горизонтальных линий: используйте '
-
' - для вертикальных линий: используйте '
|
' - перемещение влево и вниз или вправо и вверх:
/
- перемещение влево и вверх или вправо и вниз:
\
Важные замечания:
-
При рисовании строк типа 4 и 5 вы можете предположить (учитывая точки для соединения с координатами x1, y1 и x2, y2), что
distance(x1,x2) == distance(y1,y2)
. Или, другими словами (как комментирует пользователь jball): "последовательные элементы, которые не выравниваются по горизонтали или по вертикали, всегда выровняются по наклону косой черты или обратной косой черты". -
Важно следовать порядку подключения точек (новые строки могут удалять старые строки).
- Пример ввода 1 -
8 7 6 10 9 5 3 4 11 12 13 1 2
- Пример вывода 1 -
+ /| / +--+ +--------+ \ / \ / + / | / +--+ + | \ | +------------------------+ +--------------------------+
- Пример ввода 2 -
64 63 62 61 1 65 66 57 58 2 56 59 45 67 55 46 3 44 54 60 47 53 52 49 48 4 51 50 43 5 42 41 6 23 22 25 26 40 20 21 24 34 7 13 12 33 19 27 32 14 35 8 15 16 39 17 18 28 31 36 9 38 10 11 29 30 37
- Образец вывода 2 - (ссылка для единорога)
+ /+ // // // /+--+ + + \ | + +-\+ + \ + \ + / + + \ +\ + \ \ | + | + + +/ | +--+ +-------+/ + +--+ + / \ + + | + + + / \ +\ +---+ + \ +--+ + \ /+ + +--+ / \ /+| / | |+ + /+ | / + || / // + + + || / // / \ + || / // / \ | || / +/ / \ +---+ + +\ + + | | | +| +--+ +---+ +
Победитель:
Кратчайшее решение (по количеству символов кода). Вход можно считывать с помощью стандартного ввода.