Вы можете помнить эти рисунки с того момента, когда вы были ребенком, но теперь пора позволить компьютеру нарисовать их (в полном блеске 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 - (ссылка для единорога)
+
/+
//
//
//
/+--+
+ + \
| + +-\+
+ \ + \ +
/ + + \ +\
+ \ \ | +
| + + +/
| +--+ +-------+/
+ +--+ +
/ \
+ +
| +
+ + /
\ +\ +---+ +
\ +--+ + \ /+
+ +--+ / \ /+|
/ | |+ + /+ |
/ + || / // +
+ + || / // /
\ + || / // /
\ | || / +/ /
\ +---+ + +\ +
+ | | | +|
+--+ +---+ +
Победитель:
Кратчайшее решение (по количеству символов кода). Вход можно считывать с помощью стандартного ввода.



