#P16479. [GKS 2014 #A] Seven-segment Display
[GKS 2014 #A] Seven-segment Display
题目描述
Tom 是一个梦想成为科学家的男孩,他在业余时间搞了很多发明。几天前他想到一个绝妙的主意:自己动手做一个秒表!于是他立刻买了一个七段数码管。
数码管的七个段都是发光二极管(LED),通过不同的组合点亮可以表示阿拉伯数字,如下图所示:
:::align{center}
:::
然而,就在他写完程序、尝试测试秒表的时候,却发现一些 LED 居然坏掉了!有些段永远无法点亮,而其他的工作正常。于是,这块数码管一直显示着模棱两可的状态……
Tom 把数码管产生的一段连续状态记录了下来,想知道能否理解这块数码管到底在做什么。他认为第一步是确定数码管接下来会显示什么状态,你能帮帮他吗?
请注意,尽管有些段损坏,数码管仍正常工作,这意味着它会从某个数字开始(可以是 – 中的任意一个,因为我们不知道记录是从哪里开始的)循环递减。这里的“循环”是指,每次数码管递减到 后,会继续从 开始递减。
为方便起见,我们用下图中的字母 A 到 G 来指代数码管的七个段:
:::align{center}
:::
例如,如果记录的状态如下:
:::align{center}
:::
不难推断出,只有段 B 是损坏的,而数码管试图产生的状态序列就是简单的“$9 \rightarrow 8 \rightarrow 7 \rightarrow 6 \rightarrow 5$”。那么接下来的数字应该是 ,但考虑到段 B 损坏,下一个状态应为:
:::align{center}
:::
输入格式
输入的第一行给出测试用例的数量 。每个测试用例占一行,包含一个整数 ,表示 Tom 记录的状态数量,随后是 个由空格分隔的状态。每个状态被编码为一个由 个字符组成的字符串,按从左到右的顺序表示段 A 至段 G 的亮灭情况。字符串中的字符只能是 1 或 0,分别表示对应的段点亮或熄灭。
输出格式
对于每个测试用例,输出一行形如 Case #x: y 的内容,其中 是测试用例编号(从 开始)。如果输入能够唯一确定数码管的下一个状态,则 应该是以相同格式表示的该下一个状态。否则, 应为 ERROR!。
4
1 1111111
2 0000000 0001010
3 0100000 0000111 0000011
5 1011011 1011111 1010000
1011111 1011011
Case #1: 1110000
Case #2: ERROR!
Case #3: 0100011
Case #4: 0010011
提示
限制
小数据集(测试集 1 - 可见)
大数据集(测试集 2 - 隐藏)
翻译由 DeepSeek V4 Pro 完成