QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 2048 MB Total points: 100

#2942. 你说这是 7 段数码管?

Statistics

七段数码管显示器提供了一种通过点亮某些段的组合来显示十六进制数字的机制,如下图所示(红色部分为点亮的段)。

上图展示了该七段显示器所能表示的完整十六进制字符集 [0-9, AbCdEF]。注意,数字 ‘b’ 和 ‘d’ 以小写字母形式出现,以避免分别与数字 8 和 0 产生歧义。当没有任何段点亮时,可以使用一个特殊字符来表示空格。

每个段的编号为 0 到 6,如上图所示。例如,数字 3 点亮了 0、2、3、5 和 6 号段。每个段可以用 1 位二进制数表示(0 表示该段未点亮,1 表示该段点亮)。每个数字由 7 位二进制数表示。低位对应 0 号段,高位对应 6 号段。对于数字 3,位字符串为 “1101101”。在本题中,你需要读取一串二进制位,并按给定的缩放因子显示其七段数码管输出。

输入格式

输入包含一行,包含缩放因子 $S$ ($1 \le S \le 8$),后跟一个空格,再后跟一个由 1 到 1000 个 0 和 1 组成的位字符串。如果位字符串的长度不是 7 的倍数,你必须在左侧补 0。每 7 位代表一个要显示的数字。无效的数字应使用特殊字符显示。

输出格式

输出由多行组成,具体取决于要显示的数字数量和缩放因子。每个要显示的数字由一个 $S \times 7$ 行、$S \times 3$ 列的显示单元组成。

每个点亮的水平段由 $S$ 行 $S \times 3$ 个 “X” 字符组成,每个未点亮的水平段由 $S$ 行 $S \times 3$ 个空格字符组成。每个点亮的垂直段由 $S \times 2$ 行 $S$ 个 “X” 字符垂直组成。每个未点亮的垂直段由 $S \times 2$ 行 $S$ 个空格字符垂直组成。同一行的垂直段之间应有 $S$ 个空格字符。多个数字单元应并排放置,单元之间留有 $S \times 2$ 个空格。最大输出行长度为 80 列。任何无法完全放入当前输出行的数字单元应移动到下一行单元,单元之间留有 $S$ 个空行,且行首或行尾不应有额外的空格。作为七段显示一部分的空格应始终显示,即使是在行尾(或行首)。

本题的部分要求在于格式化。因此,输出将受到严格检查,必须完全遵循上述格式规则。

注意:在下方的样例中,“Sample Output” 显示了一个蓝色竖线 |,用于表示每行输出的结束。此竖线不应出现在你的程序生成的输出中,它仅用于说明目的。

样例

样例输入 1

1 110111111011

样例输出 1

XXX XXX
X X
X X
XXX XXX
X X X
X X X
XXX

样例输入 2

1
1110111010010010111011101101010111011010111111011010010111111111101111
0111111111101010100111111100101101100110111110111010010010111011101101
0101110110101111110110100101111111111011110111111111101010100111111100
101101100110111110111010010010111011101101

样例输出 2

XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X X X X X X X
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
X X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X X X X X X X X
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX

XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X X X X X X X
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX
X X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X X X X X X X X
XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX

XXX XXX XXX
X X X X X
X X X X X
XXX XXX
X X X X X
X X X X X
XXX XXX XXX

样例输入 3

4 110111111011

样例输出 3

XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXX XXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.