카운트다운

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

문제

많은 사람들이 세상이 12/21/2012 G에 끝난다고 말합니다(우리가 쓰는 달력인 그레고리력의 날짜에는 접미사 G를 붙입니다). 그런데 이 정확한 날짜는 어디에서 나왔을까요? 대부분은 남들의 말을 그대로 옮길 뿐이지만, 나름의 근거가 있습니다. 이 주장은 마야 문명과 그들의 달력인 메소아메리카 장기력(이 달력의 날짜에는 접미사 MLC를 붙입니다)에서 비롯합니다. 마야인들은 현재의 네 번째 세계 이전에 실패한 세 개의 세계가 있었다고 믿었다고 전해집니다. 직전 세계는 13.0.0.0.0 MLC에 끝났다고 합니다. 이 날짜는 동시에 현재 세계의 시작이기도 해서, 달력이 초기화되어 0.0.0.0.0 MLC로 표기됩니다. 다시 13.0.0.0.0 MLC에 이르면 역사가 반복되어 현재 세계가 끝날 수 있습니다. 어떤 MLC 날짜와 다른 달력의 대응 날짜가 주어질 때, 세상의 종말까지 며칠이 남았는지 구하려고 합니다.

이를 계산하려면 달력이 두 개 더 필요하지만, 먼저 MLC 날짜가 무엇인지 봅시다. MLC 날짜는 현재 세계가 창조된 이후 지난 날의 수입니다. 점으로 구분된 20진수인데, 오른쪽에서 두 번째 자리만 18진수라는 점이 다릅니다. 예를 들어 현재 세계가 끝나기 하루 전은 12.19.19.17.19 MLC입니다. 구체적으로, 가장 큰 자리부터 $b.k.t.u.d$로 쓴 MLC 날짜는 0.0.0.0.0 MLC 이후 $b\cdot 144000 + k\cdot 7200 + t\cdot 360 + u\cdot 20 + d$ 일에 해당하고, 13.0.0.0.0 MLC는 $13\cdot 144000 = 1872000$ 일에 해당합니다.

왜 달력이 두 개 더 필요할까요? 천문학자들이 마야의 천문 기록을 알려진 천문 현상의 날짜와 맞출 때, 그 날짜를 율리우스 적일(접미사 JDN)로 지정합니다. JDN은 MLC처럼 시작일 0 JDN 이후 지난 날의 수라서 계산이 쉽습니다. 우리는 종말까지의 날 수를 알고 싶으므로, 오늘 5/6/2012 G의 JDN과 종말 13.0.0.0.0 MLC의 JDN만 있으면 됩니다. 종말의 JDN은 한 천문 현상의 MLC 날짜와 그 JDN만 있으면 쉽게 구할 수 있습니다. 반면 오늘 날짜의 JDN을 구하는 일은 더 까다로워서 또 다른 달력이 필요합니다.

0 JDN은 율리우스력(접미사 J)으로 정의됩니다. 역사책에서 10/15/1582 G 이전의 날짜를 말할 때는 대개 율리우스력 날짜를 뜻하는데, 그레고리력은 10/5/1582 J에야 도입되었고 이때 10일을 건너뛰어 10/15/1582 G부터 다시 세기 시작했기 때문입니다. 율리우스력은 윤년 규칙이 더 간단하다는 점(그리고 방금 말한 10일 차이)만 빼면 그레고리력과 완전히 같습니다. 연도 Y가 윤년인 조건은 다음과 같습니다:

Julian:    Y % 4 == 0
Gregorian: (Y % 4 == 0 && Y % 100 != 0) || Y % 400 == 0

0 JDN은 1/1/4713 BCE J와 같습니다(BCE는 "기원전"으로 1/1/1 J 이전의 날짜를 뜻하며, 연도가 1 BCE J를 향해 거꾸로 세어진다는 점만 다르게 동작하고, 그다음이 공통 시대의 첫 해인 1 J입니다). BCE 날짜는 1/1/4 J의 4년 전이 1/1/1 BCE J이기 때문에 일반적인 윤년 규칙을 따르지 않습니다:

BCE J: (Y - 1) % 4 == 0

이를 이용해 0 JDN부터 10/5/1582 J까지의 날 수를 세고, 이어서 그레고리력 규칙으로 10/15/1582 G부터 오늘까지의 날 수를 센 뒤 두 값을 더하면 오늘의 JDN을 얻습니다:

# of Julian days = 4713 * 365
                 + (4713-1) / 4 + 1        // leap-days
                 + 1581 * 365
                 + 1581 / 4                // leap-days
                 + 5*31 + 3*30 + 28 + 4    // days in 1582
                 = 2299161
# of Gregorian days = ( ((2012-1)-1200) * 365       // days since 1200
                    + ((2012-1)-1200) / 4            // overcount leap-days
                    - ((2012-1)-1200) / 100          // adjust count
                    + ((2012-1)-1200) / 400          // adjust count
                    + 2*31 + 30 + 29 + 6 )           // days in 2012
                    - ( ((1582-1)-1200) * 365        // days from 1200 to 1582
                    + ((1582-1)-1200) / 4
                    - ((1582-1)-1200) / 100
                    + ((1582-1)-1200) / 400
                    + 5*31 + 3*30 + 28 + 14 )        // days in 1582
                    = 156894
Total = 2299161 + 156894
      = 2456055

이 합은 0 JDN 자신을 포함하므로, 5/6/2012 G는 2456054 JDN에 해당합니다.

입력

첫 줄에 데이터 집합의 개수 K가 주어집니다. 이어서 K개의 데이터 집합이 각각 다음 두 줄로 주어집니다.

  • 첫 줄에는 한 천문 현상의 MLC 날짜가 가장 큰 자리부터 공백으로 구분된 다섯 개의 정수로 주어집니다.
  • 둘째 줄에는 같은 천문 현상의 가장 유력한 JDN인 음이 아닌 정수 J가 하나 주어집니다.

유효한 장기력 날짜에서 네 개의 20진수 자리는 $0 \le \text{자리} \le 19$이고, 오른쪽에서 두 번째 자리(우이날)는 $0 \le u \le 17$입니다. 날짜의 일수 값은 위에서 정의한 가중합 $b\cdot 144000 + k\cdot 7200 + t\cdot 360 + u\cdot 20 + d$으로 계산합니다.

출력

각 데이터 집합마다 Data Set x:를 한 줄에 출력합니다. x는 1부터 시작하는 데이터 집합의 번호입니다. 다음 줄에는 주어진 JDN이 옳다고 가정할 때 종말까지 남은 날의 수를 출력합니다. 이 값이 음수이면 대신 It's a hoax!를, 정확히 0이면 대신 Panic!을 출력합니다. 연속한 데이터 집합 사이는 빈 줄로 구분합니다.