编写一个程序,对于给定的一组数据和要求,输出一个以字符组成的柱状图。
输入
第一行,一个整数 N(1<=n<=20),表示这组数据的条目数。
第二行,两个字符串,用于表示数据展示在柱状图上的排序方式。第一个字符串是“Name” 或者 “Value”,表示排序的依据是数据条目的名称亦或数值;第二个字符串是 “ASC” 或者 “DESC”,表示升序或降序。
随后的 N 行,每行包含一个字符串 S 和一个数字 V,以空格分隔,表示一条数据。S 即数据条目的名称,仅包含小写字母,V 即对应的数值,是一个整数,(0<=V<=1,000,000)
输出
图表中名称区域的宽度,由这组数据中名称的最大长度决定,所有名称向右对齐, 图表中柱的最大长度为 20,每个柱的长度由该柱对应数据和这组数据中最大值(此值一定大于 0)的比值与 20 相乘获得,不足一格的部分舍去。
输入示例
3
Value DESC
apple 5
pen 3
pineapple 10
输出示例
┌─────────┬────────────────────┐ │pineapple│████████████████████│ ├─────────┼────────────────────┤ │ apple│██████████ │ ├─────────┼────────────────────┤ │ pen│██████ | └─────────┴────────────────────┘
(等宽字体下,输出应当形如下图)
图表外框转角符号:
- “┌”(\u250c)
- “┐”(\u2510)
- “└”(\u2514)
- “┘”(\u2518)
图表中的横、竖线:
- “─”(\u2500)
- “│”(\u2502)
图表中的各种交叉线:
- “├”(\u251c)
- “┤”(\u2524)
- “┬”(\u252c)
- “┴”(\u2534)
- “┼”(\u253c)
用来拼柱子的字符:
- “█”(\u2588)