#P13392. [GCJ 2010 #1A] Number Game

[GCJ 2010 #1A] Number Game

Description

Arya 和 Bran 正在玩一个游戏。最初,黑板上写着两个正整数 AABB。两位玩家轮流行动,Arya 先手。在每一回合,玩家可以将 AA 替换为 Ak×BA - k \times Bkk 为任意正整数),或者将 BB 替换为 Bk×AB - k \times Akk 为任意正整数)。第一个使得其中一个数变为零或负数的人输掉游戏。

例如,如果初始数字为 (12,51)(12, 51),游戏过程可能如下:

  • Arya 将 5151 替换为 513×12=1551 - 3 \times 12 = 15,黑板上变为 (12,15)(12, 15)
  • Bran 将 1515 替换为 151×12=315 - 1 \times 12 = 3,黑板上变为 (12,3)(12, 3)
  • Arya 将 1212 替换为 123×3=312 - 3 \times 3 = 3,黑板上变为 (3,3)(3, 3)
  • Bran 将其中一个 33 替换为 31×3=03 - 1 \times 3 = 0,Bran 输掉游戏。

我们称 (A,B)(A, B) 为“必胜态”,如果 Arya 无论 Bran 如何应对,都能保证获胜。

给定四个整数 A1A_1A2A_2B1B_1B2B_2,请统计有多少个 (A,B)(A, B) 是必胜态,且满足 A1AA2A_1 \leq A \leq A_2B1BB2B_1 \leq B \leq B_2

Input Format

输入的第一行包含一个整数 TT,表示测试用例的数量。接下来 TT 行,每行包含四个整数 A1A_1A2A_2B1B_1B2B_2,用空格分隔。

Output Format

对于每个测试用例,输出一行,格式为 "Case #x: y",其中 xx 表示测试用例编号(从 1 开始),yy 表示满足条件的必胜态 (A,B)(A, B) 的数量。

3
5 5 8 8
11 11 2 2
1 6 1 6
Case #1: 0
Case #2: 1
Case #3: 20

Hint

数据范围

  • 1T1001 \leqslant T \leqslant 100
  • 1A1A21,000,0001 \leqslant A_1 \leqslant A_2 \leqslant 1,000,000
  • 1B1B21,000,0001 \leqslant B_1 \leqslant B_2 \leqslant 1,000,000

小数据(16 分,测试点 1 - 可见)

  • 时间限制:3 秒。
  • A2A130A_2 - A_1 \leqslant 30
  • B2B130B_2 - B_1 \leqslant 30

大数据(25 分,测试点 2 - 隐藏)

  • 时间限制:9 秒。
  • A2A1999,999A_2 - A_1 \leqslant 999,999
  • B2B1999,999B_2 - B_1 \leqslant 999,999
  • 无其他限制。

由 ChatGPT 4.1 翻译