금고 해제사

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

마스터마인드(Mastermind)와 비슷한 게임을 하는 사람을 지켜보고 있다. 이 게임의 목표는 단서를 이용한 똑똑한 추측으로 비밀 코드를 알아내는 것이다. 비밀 코드는 0000부터 9999까지의 네 자리 수이며, 예를 들어 3321이라고 하자.

플레이어가 추측을 하나 제시하면(예: 1223), 그 추측이 정답에 얼마나 가까운지를 알려 주는 단서를 받는다. 단서는 두 개의 숫자로 이루어진다.

  • 완전히 맞은 자릿수: 숫자와 위치가 모두 맞은 개수
  • 위치는 틀렸지만 숫자는 맞은 자릿수: 위 개수 외에, 숫자는 코드에 있지만 자리가 틀린 개수

비밀 코드가 3321이고 추측이 1223일 때, 위치까지 정확히 맞은 자리는 한 개(세 번째 자리의 2)이고, 숫자는 맞았지만 자리가 틀린 것은 두 개(12)이므로 단서는 1/2가 된다. 추측이 1110이면 단서는 0/1이다. 제자리에 맞은 숫자는 없고, 숫자만 맞고 자리가 틀린 것은 1 하나뿐이기 때문이다.

여러 개의 추측과 그에 대한 단서가 주어질 때, 비밀 코드를 알아내는 프로그램을 작성하라.

입력

첫 번째 줄에 테스트 케이스의 수 $N$이 주어진다.

각 테스트 케이스의 첫 줄에는 추측의 개수 $G$ ($0 \le G \le 10$)가 주어진다. 이어지는 $G$개의 줄에는 각각 정확히 8개의 문자가 있다: 네 자리 코드, 공백 한 칸, 완전히 맞은 자릿수를 나타내는 한 자리 숫자, /, 그리고 위치는 틀렸지만 숫자는 맞은 자릿수를 나타내는 한 자리 숫자.

출력

각 테스트 케이스마다 한 줄을 출력한다.

  • 모든 추측과 일치하는 코드가 하나도 없으면 impossible
  • 모든 추측과 일치하는 코드가 정확히 하나이면 그 비밀 코드(앞의 0을 유지한 네 자리 수)
  • 모든 추측과 일치하는 코드가 둘 이상이면 indeterminate