아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

알 수 없는 스위치

시간 제한8초메모리 제한512 MB

요약
Q번의 스위치 조작 기록과 그에 따른 전구 상태가 주어질 때, N개 스위치 중 각 전구를 제어하는 스위치를 알아내고 하나로 정해지지 않으면 물음표를 출력한다.
난이도

어려움10점 중 8점

유형
비트 연산, 수학, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

어느 회사 건물에는 전구가 MM개 있고, 스위치 NN개가 이 전구를 제어한다. 전구는 각각 정확히 한 개의 스위치에 연결되어 있으며, 스위치 하나가 여러 전구를 제어하기도 한다. 스위치를 조작하면 그 스위치가 제어하는 전구의 상태가 모두 반전된다.

스위치와 전구의 대응 관계를 적어 둔 표를 잃어버렸다. 다음 절차로 표를 복원하려고 한다.

  • 처음에는 모든 스위치가 꺼져 있고 모든 전구도 꺼져 있다.
  • S1S_1이 나타내는 스위치를 조작한다.
  • 전구의 상태를 확인한다. 그 결과가 B1B_1이다.
  • S2S_2가 나타내는 스위치를 조작한다.
  • 전구의 상태를 확인한다. 그 결과가 B2B_2이다.
  • 같은 방식을 SQS_Q와 BQB_Q까지 반복한다.

스위치를 조작하고 전구를 확인해도 스위치와 전구의 상태는 그대로 남는다. 다음 조작은 그 상태에서 이어진다.

조작한 스위치와 확인한 전구 상태를 바탕으로 스위치와 전구의 대응 관계를 복원하라.

입력

입력은 여러 개의 데이터 집합으로 이루어진다. 데이터 집합은 50개 이하이고 입력 전체의 크기는 10MB 이하이다. 각 데이터 집합의 형식은 다음과 같다.

N M Q
S1 B1
:
:
SQ BQ

첫 줄에 정수 NN, MM, QQ가 주어진다. NN은 스위치의 개수, MM은 전구의 개수, QQ는 조작 횟수이다. (1≤N≤361 \le N \le 36, 1≤M≤1 0001 \le M \le 1\,000, 0≤Q≤1 0000 \le Q \le 1\,000)

이어지는 QQ개의 줄에는 길이가 각각 NN과 MM인 문자열 SiS_i와 BiB_i가 공백을 사이에 두고 주어진다. SiS_i의 jj번째 문자는 0 또는 1이며, 0이면 jj번째 스위치를 조작하지 않았다는 뜻이고 1이면 조작했다는 뜻이다. BiB_i의 jj번째 문자도 0 또는 1이며, 0이면 jj번째 전구가 꺼져 있다는 뜻이고 1이면 켜져 있다는 뜻이다.

주어진 정보와 모순되지 않는 대응 관계가 항상 하나 이상 존재한다.

입력의 끝은 0이 세 개 적힌 줄로 나타낸다.

출력

각 데이터 집합마다 대응 관계를 36진법 MM자리로 한 줄에 출력한다. 이 문제의 36진법에서 값 0부터 9까지는 문자 '0'부터 '9'까지로, 값 10부터 35까지는 문자 'A'부터 'Z'까지로 나타낸다. 스위치의 번호는 0번부터 시작한다.

ii번째 문자는 ii번째 전구를 제어하는 스위치의 번호이다. ii번째 전구를 제어하는 스위치를 하나로 확정할 수 없으면 번호 대신 '?'를 출력한다.

예제8

  1. 예제 1

    입력
    3 10 3
    000 0000000000
    110 0000001111
    101 1111111100
    2 2 0
    1 1 0
    2 1 1
    01 1
    11 11 10
    10000000000 10000000000
    11000000000 01000000000
    01100000000 00100000000
    00110000000 00010000000
    00011000000 00001000000
    00001100000 00000100000
    00000110000 00000010000
    00000011000 00000001000
    00000001100 00000000100
    00000000110 00000000010
    0 0 0
    
    예상 출력
    2222221100
    ??
    0
    1
    0123456789A
    
  2. 예제 2

    입력
    1 1 0
    0 0 0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    2 3 0
    0 0 0
    
    예상 출력
    ???
    
  4. 예제 4

    입력
    36 36 36
    100000000000000000000000000000000000 100000000000000000000000000000000000
    010000000000000000000000000000000000 110000000000000000000000000000000000
    001000000000000000000000000000000000 111000000000000000000000000000000000
    000100000000000000000000000000000000 111100000000000000000000000000000000
    000010000000000000000000000000000000 111110000000000000000000000000000000
    000001000000000000000000000000000000 111111000000000000000000000000000000
    000000100000000000000000000000000000 111111100000000000000000000000000000
    000000010000000000000000000000000000 111111110000000000000000000000000000
    000000001000000000000000000000000000 111111111000000000000000000000000000
    000000000100000000000000000000000000 111111111100000000000000000000000000
    000000000010000000000000000000000000 111111111110000000000000000000000000
    000000000001000000000000000000000000 111111111111000000000000000000000000
    000000000000100000000000000000000000 111111111111100000000000000000000000
    000000000000010000000000000000000000 111111111111110000000000000000000000
    000000000000001000000000000000000000 111111111111111000000000000000000000
    000000000000000100000000000000000000 111111111111111100000000000000000000
    000000000000000010000000000000000000 111111111111111110000000000000000000
    000000000000000001000000000000000000 111111111111111111000000000000000000
    000000000000000000100000000000000000 111111111111111111100000000000000000
    000000000000000000010000000000000000 111111111111111111110000000000000000
    000000000000000000001000000000000000 111111111111111111111000000000000000
    000000000000000000000100000000000000 111111111111111111111100000000000000
    000000000000000000000010000000000000 111111111111111111111110000000000000
    000000000000000000000001000000000000 111111111111111111111111000000000000
    000000000000000000000000100000000000 111111111111111111111111100000000000
    000000000000000000000000010000000000 111111111111111111111111110000000000
    000000000000000000000000001000000000 111111111111111111111111111000000000
    000000000000000000000000000100000000 111111111111111111111111111100000000
    000000000000000000000000000010000000 111111111111111111111111111110000000
    000000000000000000000000000001000000 111111111111111111111111111111000000
    000000000000000000000000000000100000 111111111111111111111111111111100000
    000000000000000000000000000000010000 111111111111111111111111111111110000
    000000000000000000000000000000001000 111111111111111111111111111111111000
    000000000000000000000000000000000100 111111111111111111111111111111111100
    000000000000000000000000000000000010 111111111111111111111111111111111110
    000000000000000000000000000000000001 111111111111111111111111111111111111
    0 0 0
    
    예상 출력
    0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
    
  5. 예제 5

    입력
    3 4 1
    110 1101
    0 0 0
    
    예상 출력
    ??2?
    
  6. 예제 6

    입력
    2 2 2
    11 11
    11 00
    0 0 0
    
    예상 출력
    ??
    
  7. 예제 7

    입력
    4 6 2
    0010 111111
    1000 111111
    0 0 0
    
    예상 출력
    222222
    
  8. 예제 8

    입력
    5 4 3
    00000 0000
    00000 0000
    00000 0000
    1 3 2
    0 000
    0 000
    0 0 0
    
    예상 출력
    ????
    000