모자 퍼즐
시간 제한10초메모리 제한1024 MB
참가자들이 서로의 모자를 보고 질문마다 예, 아니오로 답할 때, 공개된 답을 바탕으로 각 참가자의 답을 구합니다.
문제
명의 UCPC 출제자가 풀이 및 스코어보드 공개 방송을 위해 한 장소에 모였다. 출제진은 방송을 시작하기 전에 심심풀이로 머리를 쓰는 게임을 하기로 했다.
- 게임의 진행자는 흰색과 검은색 모자를 여러 개 갖고 있다.
- 각 출제자는 정해진 의자에 앉는다. 모든 출제자는 누가 누구의 모자를 볼 수 있는지 알고 있으며, 자신의 모자는 볼 수 없다.
- 모든 출제자가 눈을 감으면 진행자가 각 출제자에게 두 색 중 하나의 모자를 씌운다. 그 후 진행자는 "흰색 모자는 개 이상 개 이하로 씌웠습니다."라고 말한다.
- 이후 진행자가 여러 번 질문한다. 질문에서는 몇 명의 출제자에게 동시에 "당신이 쓴 모자의 색을 알고 있나요?"라고 묻고, 지목된 출제자는 모두 동시에 대답해야 한다. 모든 출제자는 누가 무엇이라고 대답했는지 알 수 있다.
각 출제자가 쓴 모자를 모두 알고 있는 관전자의 시점에서 이 게임을 풀어 보자. 모든 출제자가 완벽하게 논리적으로 생각하며 근거 없는 추측은 하지 않는다고 가정한다. 각 출제자가 무엇이라고 대답할지 구하라.
입력
첫째 줄에 이 주어진다. ()
그다음 줄부터 한 줄에 0 또는 1이 개씩 총 줄이 주어진다. 번째 줄의 번째 수가 1이면 번째 출제자는 번째 출제자의 모자를 볼 수 있고, 0이면 볼 수 없다. 어떤 출제자도 자신의 모자는 볼 수 없으므로 대각선 값은 모두 0이다.
그다음 줄에는 진행자가 알려준 흰색 모자의 최소 개수 과 최대 개수 가 주어진다. ()
그다음 줄에는 W와 B로 이루어진 길이 의 문자열이 주어진다. 번째 문자는 번째 출제자가 흰색 모자를 썼으면 W, 아니면 B이다. W의 개수는 개 이상 개 이하이다.
그다음 줄에는 질문의 개수 가 주어진다. ()
그다음 줄부터 개의 줄이 주어진다. 각 줄에는 질문을 받는 사람의 수 가 먼저 주어지고, 이어서 질문을 받는 출제자의 번호 가 개 주어진다. 이 명은 동시에 질문을 받는다. 각 줄에서 는 중복되지 않는다.
출력
각 질문에 대해, 출제자의 대답을 나타내는 문자를 질문에 주어진 순서대로 개 이어 붙여 한 줄에 출력한다. "예"이면 Y, "아니요"이면 N을 출력한다.