SP27095 FN16CLK - Clock Breaking

题目描述

在多次意外事故和随之而来的法律诉讼、和解、抗议和抵制之后,ACME 时钟制造公司的高管们终于意识到他们必须要解决长期存在的质量控制问题。多年来,他们生产的数字时钟中,液晶显示屏(LCD)出故障的比例一直居高不下,但他们对这个问题一直置之不理,甚至没有提醒那些不知情的消费者! 作为受聘的质量顾问,你的任务是编写一个自动化程序,用于检测时钟显示中的故障。 这些时钟使用的是标准的7段液晶显示屏显示数字(如图所示),并且有两个小段用于表示「:」,时间以24小时制显示。午夜前最后一分钟为23:59,而午夜则是0:00。在正常情况下,「:」的两个段始终亮着。每个数字段的7段显示方式如下图所示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/SP27095/84454f039c0740dee60af84f40bddb7593ed19df.png) 程序会接收到多个连续分钟时刻的时钟显示,但并不知晓具体的起始时间。某些液晶段可能已经烧坏(不会亮),而另一些则可能烧入(始终亮)。你的任务是尽可能准确地判断哪些段是故障的,哪些段可以正常工作。

输入格式

输入包含多个测试用例,直到文件结束。对于每个测试用例: 第一行包含一个整数 $n$($1 \leq n \leq 100$),表示时钟连续显示的分钟数。接下来的 $8n - 1$ 行中,每 $n$ 行表示一个大小为 $7 \times 21$ 的ASCII图像。每个图像之间有一行空行,除了每个测试用例的最后一组表示。 数字段由两个字符表示,每个冒号段由一个字符表示。字符 `X` 表示段亮着,而字符 `.` 表示其他(段关闭或显示的非段部分)。详见样例输入/输出,首个输出显示了所有可能的LCD段,以及用于表示冒号的小段。钟表显示不会出现非段位置的 `X` 或部分段显示的情况。

输出格式

对于每个测试用例,输出大小为 $7 \times 21$ 的ASCII图像,其中: - 烧坏的段用 `0` 表示 - 烧入的段用 `1` 表示 - 正常工作的段用 `W` 表示 - 状态不明的段用 `?` 表示 - 非段部分用 `.` 表示 如果所给显示不可能来自于连续的分钟,则输出 `impossible`。 **本翻译由 AI 自动生成**