고장 난 7세그먼트 디스플레이
시간 제한5초메모리 제한512 MB
시작 숫자와 고장 난 조각을 모르는 채 기록한 연속 표시에서 다음 표시를 구하고, 가능한 해석이 서로 다르면 ERROR를 출력합니다.
문제
톰은 7세그먼트 디스플레이 하나로 스톱워치를 만들었다. 그런데 몇몇 세그먼트가 고장 나서 아예 켜지지 않는다. 고장 나지 않은 세그먼트는 숫자가 요구하는 대로 정확히 켜진다. 카운터 자체는 멀쩡해서 디스플레이는 한 자리 숫자를 1씩 줄여 가며 표시하고, 0 다음에는 다시 9로 돌아가 계속 세어 내려간다.
일곱 개의 세그먼트에는 A부터 G까지 이름이 붙어 있다.
- A는 위쪽 가로 막대다.
- B는 오른쪽 위 세로 막대다.
- C는 오른쪽 아래 세로 막대다.
- D는 아래쪽 가로 막대다.
- E는 왼쪽 아래 세로 막대다.
- F는 왼쪽 위 세로 막대다.
- G는 가운데 가로 막대다.
디스플레이의 상태는 0과 1로 이루어진 길이 7인 문자열로 적는다. 왼쪽부터 차례로 세그먼트 A, B, C, D, E, F, G를 뜻하고, 1은 그 세그먼트가 켜져 있다는 뜻이다. 고장 난 세그먼트가 하나도 없다면 열 개의 숫자는 다음 상태로 보인다.
실제로 보이는 상태는 숫자의 원래 모양에서 고장 난 세그먼트를 모두 꺼 놓은 것이다.
톰은 연속한 상태 개를 적어 두었다. 기록이 어느 숫자에서 시작하는지도 모르고, 어떤 세그먼트가 고장 났는지도 모른다. 기록 바로 다음에 디스플레이가 보여 줄 상태를 구하라. 서로 다른 두 상태가 모두 기록과 들어맞는다면 기록만으로는 다음 상태가 정해지지 않는다.
예를 들어 기록이 1101100, 0110000, 1111110이라면 들어맞는 해석은 세그먼트 G가 고장 났고 디스플레이가 2, 1, 0을 보여 준 경우 하나뿐이다. 다음 숫자는 9이고 9의 모양은 1111011이므로, G가 꺼진 채로 1111010이 보인다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. 다음 개의 줄에는 테스트 케이스가 한 줄에 하나씩 주어진다. 각 줄에는 기록한 상태의 개수 과 상태 개가 공백 하나로 구분되어 주어진다. 각 상태는 0과 1로 이루어진 길이 7인 문자열이다.
- 입력에 주어지는 기록은 모두 디스플레이가 실제로 만들어 낼 수 있는 기록이다. 즉 시작 숫자와 고장 난 세그먼트 집합을 적어도 한 가지는 고를 수 있다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 테스트 케이스 번호다. 기록으로 다음 상태가 하나로 정해지면 는 그 상태를 입력과 같은 길이 7인 문자열로 쓰고, 그렇지 않으면 는 ERROR!로 쓴다.