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

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

코드 수열

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

요약
알 수 없는 계수로 GF(10007) 위에서 만들어진 수열의 연속한 N개 항이 주어질 때, 다음 항을 구하거나 UNKNOWN을 출력한다.
난이도

보통10점 중 7점

유형
수학, 정수론, 완전 탐색
정답자
아직 제출이 없습니다

문제

비밀 코드로 만들어진 수열 SS의 다음 값을 알아내려고 한다. 이 코드는 다음 절차로 수열을 만들었다.

먼저 00 이상 2929 이하의 각 kk에 대해 00 이상 1000610006 이하의 수 CkC_k를 하나 고른다.

그다음 00 이상 10910^9 이하의 각 정수 nn에 대해 다음을 수행한다.

  • nn을 이진법으로 쓴다.
  • nn의 이진 표현에서 켜져 있는 모든 비트 kk에 대해 CkC_k를 꺼낸다. 예를 들어 n=5n = 5이면 0번 비트와 2번 비트가 켜져 있으므로 C0C_0과 C2C_2를 꺼낸다.
  • 꺼낸 값을 모두 더하고 1000710007로 나눈 나머지를 SnS_n으로 둔다.

수열 SS에서 연속한 값 몇 개를 받는다. 이 값들이 수열의 어느 위치에서 시작하는지는 모르지만, 뒤에 값이 적어도 하나 더 있다는 것은 안다. 수열을 만들 때 고른 CkC_k가 무엇인지도 모른다.

주어진 값 다음에 오는 수를 구한다. 입력만으로 정할 수 없으면 UNKNOWN을 출력한다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스는 두 줄이다.

  • 첫 줄에는 알고 있는 SS의 원소 개수 NN이 주어진다.
  • 둘째 줄에는 알고 있는 원소 NN개가 공백 하나로 구분되어 주어진다. 각 원소는 00 이상 1000610006 이하이다.

제한

  • 1≤T≤201 \le T \le 20
  • 1≤N≤301 \le N \le 30
  • 각 테스트 케이스는 위 절차로 만들어진 어떤 수열의 연속한 구간이고, 그 구간 뒤에는 값이 적어도 하나 더 있다.

출력

각 테스트 케이스마다 "Case #XX: YY" 형식으로 한 줄 출력한다. XX는 1부터 시작하는 테스트 케이스 번호이고, YY는 다음에 오는 수이다. 다음 수를 정할 수 없으면 YY 자리에 UNKNOWN을 쓴다.

노트

첫 번째 예제에서는 C0C_0, C1C_1, C2C_2가 각각 1, 2, 4이고 주어진 값이 n=1n = 1에서 시작했을 수 있다. 그렇다면 C3C_3을 알 수 없으므로 다음 수는 무엇이든 될 수 있고, 답은 UNKNOWN이다.

두 번째 예제에서는 CkC_k를 전부 알아낼 수 없고 nn이 무엇인지도 알 수 없다. 그래도 이 절차로 만들어진 어떤 수열에서든 1, 10, 11, 200이 이 순서로 나타나면 그다음 값은 항상 201임을 증명할 수 있다.

예제1

  1. 예제 1

    입력
    3
    7
    1 2 3 4 5 6 7
    4
    1 10 11 200
    4
    1000 1520 7520 7521
    
    예상 출력
    Case #1: UNKNOWN
    Case #2: 201
    Case #3: 3514