您可能还记得小时候的这些图画,但现在是时候让计算机绘制它们了(完整的 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 --(独角兽参考)
+
/+
//
//
//
/+--+
+ + \
| + +-\+
+ \ + \ +
/ + + \ +\
+ \ \ | +
| + + +/
| +---+ +-------+/
+ +--+ +
/ \
+ +
| +
+ + /
\ +\ +---+ +
\ +--+ + \ /+
+ +--+ / \ /+|
/ | |+ + /+ |
/ + || / // +
+ + || / // /
\ + || / // /
\ | || / +/ /
\ +---+ + +\ +
+ | | | +|
+--+ +---+ +
优胜者:
最短的解决方案(按代码字符数)。输入可以通过标准输入读取。