SP7210 DRAWM - Draw Mountains

题目描述

你是一个团队的成员,正在开发一款全新的图形程序。你的任务是编写一个模块,用于绘制山脉的轮廓线。由于程序仍处于测试阶段,所有的轮廓线都是离散化表示的。这意味着模块会接收一串整数,表示不同的高度。每对相邻的高度值最多只能相差 1,生成的输出中,每一对相邻高度的变化用一列表示,每列仅包含一个字符。具体显示的字符及其在列中的位置取决于高度的变化。当两个高度相等时,输出下划线(“_”);若高度增加,输出斜杠(“/”);若高度减少,输出反斜杠(“\\”)。字符的位置必须保证轮廓线在视觉上符合给定的高度变化。 例如,对于高度序列 (1, 2, 3, 2, 3, 3, 2, 1, 0),应生成如下的轮廓线图形: \_ /\\/ \\ / \\ \\ 注意,当高度序列有 C + 1 个数时,生成的轮廓线应有 C 列。给定一组高度序列,你需要按照描述的规则绘制相应的轮廓线。具体请参见示例进行理解。

输入格式

输入由多个测试用例组成,每个测试用例分为两行。第一行是整数 C,表示轮廓线的列数(1 < C ≤ 100)。第二行包含 C + 1 个整数 Hi,用空格隔开,代表高度序列(0 ≤ Hi ≤ 100),其中 Hi = 0 表示最低点。相邻两个高度值的差不超过 1(即 |Hi − Hi+1| ≤ 1)。当 C = 0 时,表示输入结束,此行不作为有效测试用例处理。

输出格式

对于每个测试用例,输出相应的轮廓线,然后换行输出三个星号(“***”)。在输出轮廓线时,仅使用常规空格、换行符和指定的三个字符。轮廓线必须左对齐,包含准确的 C 列。每行末尾不应有多余空格,也没有空行。 **本翻译由 AI 自动生成**