코드 수열 (라지)

아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

비밀 코드로 만들어진 수열 SS의 다음 항을 구한다. 코드는 다음 절차로 만들어졌다.

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

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

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

수열 SS의 연속한 항 몇 개가 주어진다. 그 항들이 수열의 어느 위치에서 시작하는지는 모르지만, 뒤에 항이 적어도 하나 더 있다는 것은 안다. 수열을 만들 때 어떤 CkC_k를 골랐는지도 모른다.

주어진 항 바로 다음 항을 구한다. 입력만으로 값이 하나로 정해지지 않으면 UNKNOWN을 출력한다.

입력

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

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

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

제한

  • 1T201 \le T \le 20
  • 1N10001 \le N \le 1000
  • 각 테스트 케이스는 위 절차로 만들 수 있는 어떤 수열의 연속한 일부이고, 마지막으로 주어진 항 뒤에 항이 적어도 하나 더 있다. 즉 C0,,C29C_0, \dots, C_{29}0m109N0 \le m \le 10^9 - Nmm이 존재해서 주어진 항이 차례로 Sm,Sm+1,,Sm+N1S_m, S_{m+1}, \dots, S_{m+N-1}이 된다.

출력

각 테스트 케이스마다 Case #XX: YY 형식으로 한 줄 출력한다. XX는 1부터 시작하는 테스트 케이스 번호이고, YY는 다음 항이다. 다음 항이 하나로 정해지지 않으면 YY 자리에 UNKNOWN을 쓴다.

설명

예제 입력의 첫 번째 테스트 케이스에서는 C0,C1,C2C_0, C_1, C_2가 각각 1, 2, 4이고 주어진 항이 n=1n=1에서 시작한다고 볼 수 있다. 이렇게 보면 C3C_3을 모르므로 다음 항은 어떤 값이든 될 수 있고, 답은 UNKNOWN이다.

두 번째 테스트 케이스에서는 CkC_k 전체도, 시작 위치도 알아낼 수 없다. 그래도 어떤 수열에서든 1, 10, 11, 200이 이 순서로 연속해서 나오면 다음 값은 항상 201임을 증명할 수 있다.