#P13388. [GCJ 2010 Qualification] Fair Warning

    ID: 13199 远端评测题 3000ms 1024MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>数学高精度2010数论Google Code Jam

[GCJ 2010 Qualification] Fair Warning

Description

在我们的星球 Jamcode IX 上,曾经发生过三次伟大的事件。它们分别发生在 2600026000110001100060006000 个 slarbosecond 之前。再过 40004000 个 slarbosecond,从这些事件到那时的时间都将是 50005000 的倍数,这是可能的最大倍数……而世界末日也将在那时到来。

幸运的是,你现在生活在 Jamcode X!Jamcode IX 的世界末日发生在不到一年前。但 Jamcode X 有一个令人担忧的预言:“在清算时刻之后,在 NN 个伟大事件的第一个最优周年纪念日,世界末日将会到来。64 位整数也无法拯救你。你已被警告。”

Jamcode X 的人们非常担心这个预言。所有伟大事件都已经发生,并且它们的时间都被精确测量到了最近的 slarbosecond;但没有人知道它们的最优周年纪念日会在什么时候。科学家们在研究了 Jamcode IX 一位科学家的日记后,提出了一个理论:

清算时刻就是现在,也就是你正在解决这个问题的时刻。在某个距离现在 y0y \geqslant 0 个 slarbosecond 的时刻,从每个伟大事件到那时的时间都将能被某个最大整数 TT 整除。如果你能找到使这个最大 TT 成立的最小 yy,那么这个 yy 就是世界末日到来的最优周年纪念日。

例如,在 Jamcode IX 上,有 3 个伟大事件,分别发生在 2600026000110001100060006000 个 slarbosecond 之前。再过 40004000 个 slarbosecond,每个事件到那时的时间都是 T=5000T=5000 的倍数,于是世界末日到来了。

你的任务是计算距离世界末日还有多少时间。但请记住预言:尽管 Jamcode X 的人们已经解决问题两年了,并且 64 位整数一直都足够,但现在或将来可能就不够用了。

Input Format

输入的第一行是测试用例数 CC。接下来的 CC 行,每行以一个整数 NN 开头,后跟一个空格,然后是 NN 个用空格分隔的整数 tit_i,表示第 ii 个伟大事件发生至今的 slarbosecond 数。

Output Format

对于每个测试用例,输出一行,格式为 “Case #x: y”,其中 xx 是测试用例编号(从 1 开始),yy 是距离每个 ti+yt_i + y 都能被最大可能的整数因子 TT 整除的最小 slarbosecond 数。

3
3 26000000 11000000 6000000
3 1 10 11
2 800000000000000000001 900000000000000000001
Case #1: 4000000
Case #2: 0
Case #3: 99999999999999999999

Hint

数据范围

  • 1C1001 \leqslant C \leqslant 100
  • 存在某些 i,ji, j 使得 titjt_{i} \neq t_{j}

小数据集(10 分,测试集 1 - 可见)

  • 2N32 \leqslant N \leqslant 3
  • 1ti1081 \leqslant t_{i} \leqslant 10^{8}

大数据集(23 分,测试集 2 - 隐藏)

  • 2N10002 \leqslant N \leqslant 1000
  • 1ti10501 \leqslant t_{i} \leqslant 10^{50}

由 ChatGPT 4.1 翻译