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

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

캘리포니아 존스와 자유의 문

시간 제한1초메모리 제한128 MB

요약
n개의 돌과 이진수 b가 주어질 때, 선택한 n/2개의 돌이 크기 n/2인 모든 부분집합을 사전순으로 나열했을 때 b번째 조합과 정확히 일치하는지 판정한다.
난이도

보통10점 중 6점

유형
조합론, 수학, 구현, 정렬
정답자
아직 제출이 없습니다

문제

캘리포니아 존스(그 유명한 인디아나 존스의 여동생)가 거대한 문 앞에 갇혀 당신의 도움이 필요합니다.

nn개의 돌이 한 줄로 놓여 있고, 각 돌에는 서로 다른 정수가 새겨져 있습니다. 문 앞에는 정확히 n/2n/2개의 구멍이 있으며, 존스는 이 구멍에 돌을 넣어야 합니다. 어떤 돌을 어떤 구멍에 넣는지는 중요하지 않고, 오직 어떤 n/2n/2개의 돌을 고르는지만 중요합니다.

문에는 이진수 하나로 하나의 선택이 표시됩니다. 이진수가 선택을 가리키는 방법은 다음과 같습니다.

  • 돌을 입력에 주어진 순서(첫 번째, 두 번째, …, nn번째)로 봅니다.
  • n/2n/2개의 돌을 고르는 각 방법을, 그 방법이 사용하는 위치들을 오름차순으로 나열한 목록으로 나타냅니다.
  • 모든 선택을 이 위치 목록의 사전식(lexicographic) 오름차순으로 정렬합니다. 위치 {1,2,…,n/2}\{1, 2, \dots, n/2\}를 쓰는 선택이 가장 앞에 옵니다.
  • 정렬된 선택에 0,1,2,…,(nn/2)−10, 1, 2, \dots, \binom{n}{n/2} - 1의 번호를 매깁니다.

이진 문자열 bb는 음이 아닌 정수를 나타내며, 그 정수가 바로 이 정렬에서의 선택 번호(인덱스)입니다.

이진 문자열 bb와 n/2n/2개의 돌 집합이 주어질 때, 그 집합이 bb가 가리키는 선택과 정확히 일치하는지 판별하세요. 만약 bb가 유효한 인덱스가 아니라면(즉 b≥(nn/2)b \ge \binom{n}{n/2}), 어떤 집합과도 일치할 수 없으므로 답은 FALSE입니다.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있습니다. 각 테스트 케이스는 돌의 개수 nn으로 시작합니다. n=0n = 0인 줄이 나오면 입력이 끝납니다.

그 외의 테스트 케이스에서 nn은 짝수이며 2≤n≤322 \le n \le 32입니다. 이어서 nn개의 정수가 돌의 식별자로 주어집니다. 그다음 질의의 개수 kk가 주어집니다. 이어지는 kk개의 질의는 각각 이진 문자열 bb와, 고른 돌을 나타내는 서로 다른 정수 n/2n/2개로 이루어집니다. 고른 돌은 모두 nn개의 돌 중 하나이며, bb의 길이는 최대 3030입니다.

출력

각 질의마다, 고른 돌이 bb가 가리키는 선택과 정확히 일치하면 TRUE를, 그렇지 않으면 FALSE를 한 줄에 출력하세요.

예제1

  1. 예제 1

    입력
    4
    12 50 74 34
    1
    00
    50 12
    
    8
    45 23 86 43 90 76 12 74
    2
    111001
    86 43 90 74
    010001
    45 86 43 90
    
    4
    12 50 74 34
    2
    101
    34 74
    110
    34 74
    
    0
    
    예상 출력
    TRUE
    TRUE
    FALSE
    TRUE
    FALSE