캘리포니아 존스와 자유의 문
시간 제한1초메모리 제한128 MB
n개의 돌과 이진수 b가 주어질 때, 선택한 n/2개의 돌이 크기 n/2인 모든 부분집합을 사전순으로 나열했을 때 b번째 조합과 정확히 일치하는지 판정한다.
문제
캘리포니아 존스(그 유명한 인디아나 존스의 여동생)가 거대한 문 앞에 갇혀 당신의 도움이 필요합니다.
개의 돌이 한 줄로 놓여 있고, 각 돌에는 서로 다른 정수가 새겨져 있습니다. 문 앞에는 정확히 개의 구멍이 있으며, 존스는 이 구멍에 돌을 넣어야 합니다. 어떤 돌을 어떤 구멍에 넣는지는 중요하지 않고, 오직 어떤 개의 돌을 고르는지만 중요합니다.
문에는 이진수 하나로 하나의 선택이 표시됩니다. 이진수가 선택을 가리키는 방법은 다음과 같습니다.
- 돌을 입력에 주어진 순서(첫 번째, 두 번째, …, 번째)로 봅니다.
- 개의 돌을 고르는 각 방법을, 그 방법이 사용하는 위치들을 오름차순으로 나열한 목록으로 나타냅니다.
- 모든 선택을 이 위치 목록의 사전식(lexicographic) 오름차순으로 정렬합니다. 위치 를 쓰는 선택이 가장 앞에 옵니다.
- 정렬된 선택에 의 번호를 매깁니다.
이진 문자열 는 음이 아닌 정수를 나타내며, 그 정수가 바로 이 정렬에서의 선택 번호(인덱스)입니다.
이진 문자열 와 개의 돌 집합이 주어질 때, 그 집합이 가 가리키는 선택과 정확히 일치하는지 판별하세요. 만약 가 유효한 인덱스가 아니라면(즉 ), 어떤 집합과도 일치할 수 없으므로 답은 FALSE입니다.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있습니다. 각 테스트 케이스는 돌의 개수 으로 시작합니다. 인 줄이 나오면 입력이 끝납니다.
그 외의 테스트 케이스에서 은 짝수이며 입니다. 이어서 개의 정수가 돌의 식별자로 주어집니다. 그다음 질의의 개수 가 주어집니다. 이어지는 개의 질의는 각각 이진 문자열 와, 고른 돌을 나타내는 서로 다른 정수 개로 이루어집니다. 고른 돌은 모두 개의 돌 중 하나이며, 의 길이는 최대 입니다.
출력
각 질의마다, 고른 돌이 가 가리키는 선택과 정확히 일치하면 TRUE를, 그렇지 않으면 FALSE를 한 줄에 출력하세요.