만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

숫자 게임

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

요약
0 이하로 만드는 쪽이 지는 뺄셈 게임에서 선공이 이기는 순서쌍이 주어진 구간에 몇 개인지 셉니다.
난이도

보통10점 중 7점

유형
게임 이론, 정수론, 재귀, 수학
정답자
아직 제출이 없습니다

문제

아리아와 브랜이 게임을 한다. 처음에 칠판에는 양의 정수 AA와 BB가 적혀 있다. 아리아부터 번갈아 차례를 진행한다. 차례가 된 플레이어는 양의 정수 kk를 하나 골라 AA를 A−k×BA - k \times B로 바꾸거나, BB를 B−k×AB - k \times A로 바꿀 수 있다. 두 수 가운데 하나를 0 이하로 만든 사람이 진다.

처음 수가 (12,51)(12, 51)이면 게임은 예를 들어 다음처럼 흘러간다.

  • 아리아가 51을 51−3×12=1551 - 3 \times 12 = 15로 바꾼다. 칠판에는 (12,15)(12, 15)가 남는다.
  • 브랜이 15를 15−1×12=315 - 1 \times 12 = 3으로 바꾼다. 칠판에는 (12,3)(12, 3)이 남는다.
  • 아리아가 12를 12−3×3=312 - 3 \times 3 = 3으로 바꾼다. 칠판에는 (3,3)(3, 3)이 남는다.
  • 브랜이 3 하나를 3−1×3=03 - 1 \times 3 = 0으로 바꾸고, 진다.

브랜이 어떻게 두더라도 아리아가 반드시 이기면 (A,B)(A, B)를 승리 위치라고 부른다.

정수 A1A_1, A2A_2, B1B_1, B2B_2가 주어진다. A1≤A≤A2A_1 \le A \le A_2이고 B1≤B≤B2B_1 \le B \le B_2인 승리 위치 (A,B)(A, B)의 개수를 세어라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 다음 TT개 줄에 테스트 케이스가 한 줄에 하나씩 주어진다. 각 줄에는 정수 A1A_1, A2A_2, B1B_1, B2B_2가 공백으로 구분되어 있다.

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤A1≤A2≤1061 \le A_1 \le A_2 \le 10^6
  • 1≤B1≤B2≤1061 \le B_1 \le B_2 \le 10^6

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 A1≤A≤A2A_1 \le A \le A_2이고 B1≤B≤B2B_1 \le B \le B_2인 승리 위치 (A,B)(A, B)의 개수이다.

예제3

  1. 예제 1

    입력
    3
    5 5 8 8
    11 11 2 2
    1 6 1 6
    
    예상 출력
    Case #1: 0
    Case #2: 1
    Case #3: 20
    
  2. 예제 2

    입력
    1
    1 1 1 1
    
    예상 출력
    Case #1: 0
    
  3. 예제 3

    입력
    6
    1 1 1 1000000
    1000000 1000000 1 1000000
    1 1 2 2
    2 2 1 1
    1 1000000 1 1
    1 1 1000000 1000000
    
    예상 출력
    Case #1: 999999
    Case #2: 618033
    Case #3: 1
    Case #4: 1
    Case #5: 999999
    Case #6: 1