qxforever 在《电子设计基础训练》课上学习了七段数码管的使用方法。数码管能够方便的显示出 $0$ 到 $9$ 的数字。以下是每个数字的表示形式。
假设 LED 手表的屏幕由四个七段数码管(表示小时和分钟)和中间两个短管(表示冒号 :
) 组成。
手表上显示的时间可以抽象为 $7$ 行长度为 $21$ 的字符串。每个七段数码管用 $7\times4$ ( $7$ 行 $4$ 列)的字符串表示,数码管与数码管或冒号之间用一列 .
隔开。每个数码管由两个字符表示,冒号上下各用一个字符表示。X
代表这段数码管是亮的,.
代表其他情况(这段数码管灭或者非数码管位置)。以下是 $20:36$ 的表示
.XX...XX.....XX...XX.
...X.X..X......X.X...
...X.X..X.X....X.X...
.XX..........XX...XX.
X....X..X.X....X.X..X
X....X..X......X.X..X
.XX...XX.....XX...XX.
其中,第 $1-4$ 列表示 $2$,第 $6-9$ 列表示 $0$ ,第 $11$ 列表示冒号 ,第 $13-16$ 列表示 $3$ ,第 $18-21$ 列表示 $6$ 。
现在手表出了故障,有些数码管不能正常工作,可能表现为永远亮或永远灭。不会存在非数码管位置亮的情况。
给你连续 $n$ 分钟的手表的显示情况,请编写一个程序判断数码管的状态。
第一行一个正整数 $n$ ( $n\le100$ ),含义如上所述。
接下来 $7n$ 行,每行一个长度为 $21$ 的字符串,表示手表的显示情况。每分钟之间以一个空行分隔。
如果给出的情况是不可能发生的,输出 impossible
。
否则按以下规则输出 $7$ 行长度为 $21$ 的字符串。
如果对应位置的数码管正常工作,输出 W
;对应位置的数码管永远灭,输出 0
; 对应位置的数码管永远亮,输出 1
;对应位置的状态不能确定,输出 ?
。对于非数码管的位置,输出 .
。
3
......XX.....XX...XX.
.....X..X...X..X....X
.....X..X.X.X..X....X
.............XX...XX.
.....X..X......X.X..X
.....X..X......X.X..X
......XX.....XX...XX.
......XX.....XX...XX.
.....X..X...X..X....X
.....X..X.X.X..X....X
.............XX...XX.
.....X..X......X.X..X
.....X..X......X.X..X
......XX.....XX...XX.
.............XX...XX.
........X...X..X....X
........X.X.X..X....X
.............XX......
........X...X..X.X..X
........X...X..X.X..X
......XX.....XX...XX.
.??...WW.....??...??.
?..?.W..?...?..1.0..?
?..?.W..?.?.?..1.0..?
.??...??.....11...WW.
?..?.W..?.0.W..?.1..?
?..?.W..?...W..?.1..?
.??...11.....??...??.
2
......XX.....XX...XX.
...X....X...X..X.X..X
...X....X.X.X..X.X..X
......XX..........XX.
...X.X....X.X..X.X..X
...X.X......X..X.X..X
......XX.....XX...XX.
......XX.....XX......
...X....X...X..X.....
...X....X.X.X..X.....
......XX.............
...X.X....X.X..X.....
...X.X......X..X.....
......XX.....XX......
impossible
样例一中可能的情况有 (0:58,0:59,1:00) (10:58,10:59,11:00) (20:58,20:59,21:00)
AUTHOR: 冯玮琪