#EXER0505. 检测数码管
检测数码管
时间限制: 1.0 秒
空间限制: 256 MB
题目背景
我们以前常见的液晶数码管能够方便的显示出 到 的数字。以下是每个数字的表示形式。

题目描述
假设 LED 手表的屏幕由四个七段数码管(表示小时和分钟)和中间两个短管(表示冒号 : ) 组成。
手表上显示的时间可以抽象为 行长度为 的字符串。每个七段数码管用 行 列,的字符串表示,数码管与数码管或冒号之间用一列 . 隔开。每个数码管由两个字符表示,冒号上下各用一个字符表示。X 代表这段数码管是亮的,. 代表其他情况(这段数码管灭或者非数码管位置)。以下是 的表示:
.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.
其中,第 列表示 ,第 列表示 ,第 列表示冒号 ,第 列表示 ,第 列表示 。
现在手表出了故障,有些数码管不能正常工作,可能表现为永远亮或永远灭。不会存在非数码管位置亮的情况。
给你连续 分钟的手表的显示情况,请编写一个程序判断数码管的状态。
输入格式
从标准输入读入数据。
第一行一个正整数 ,含义如上所述。
接下来 行,每行一个长度为 的字符串,表示手表的显示情况。每分钟之间以一个空行分隔。
输出格式
输出到标准输出。
如果给出的情况是不可能发生的,输出 impossible。
否则按以下规则输出 行长度为 的字符串。 如果对应位置的数码管正常工作,输出 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.....??...??.
样例 1 解释
样例一中可能的情况有 (0:58,0:59,1:00) (10:58,10:59,11:00) (20:58,20:59,21:00)。
我们把这三种可能情况综合考虑每个液晶管可能的状态,得到上述结果。
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
来源
ICPC Word Final 2016 - D