P13388 [GCJ 2010 Qualification] Fair Warning
题目背景
Fortunately for the peoples of the Jamcode system, "the apocalypse" turned out to be a mistranslation of "the giant party." Nobody from Jamcode IX bothered to pass this along, because they were having so much fun.
题目描述
在我们的星球 Jamcode IX 上,曾经发生过三次伟大的事件。它们分别发生在 $26000$、$11000$ 和 $6000$ 个 slarbosecond 之前。再过 $4000$ 个 slarbosecond,从这些事件到那时的时间都将是 $5000$ 的倍数,这是可能的最大倍数……而世界末日也将在那时到来。
幸运的是,你现在生活在 Jamcode X!Jamcode IX 的世界末日发生在不到一年前。但 Jamcode X 有一个令人担忧的预言:“在清算时刻之后,在 $N$ 个伟大事件的第一个最优周年纪念日,世界末日将会到来。64 位整数也无法拯救你。你已被警告。”
Jamcode X 的人们非常担心这个预言。所有伟大事件都已经发生,并且它们的时间都被精确测量到了最近的 slarbosecond;但没有人知道它们的最优周年纪念日会在什么时候。科学家们在研究了 Jamcode IX 一位科学家的日记后,提出了一个理论:
清算时刻就是现在,也就是你正在解决这个问题的时刻。在某个距离现在 $y \geqslant 0$ 个 slarbosecond 的时刻,从每个伟大事件到那时的时间都将能被某个最大整数 $T$ 整除。如果你能找到使这个最大 $T$ 成立的最小 $y$,那么这个 $y$ 就是世界末日到来的最优周年纪念日。
例如,在 Jamcode IX 上,有 3 个伟大事件,分别发生在 $26000$、$11000$ 和 $6000$ 个 slarbosecond 之前。再过 $4000$ 个 slarbosecond,每个事件到那时的时间都是 $T=5000$ 的倍数,于是世界末日到来了。
你的任务是计算距离世界末日还有多少时间。但请记住预言:尽管 Jamcode X 的人们已经解决问题两年了,并且 64 位整数一直都足够,但现在或将来可能就不够用了。
输入格式
输入的第一行是测试用例数 $C$。接下来的 $C$ 行,每行以一个整数 $N$ 开头,后跟一个空格,然后是 $N$ 个用空格分隔的整数 $t_i$,表示第 $i$ 个伟大事件发生至今的 slarbosecond 数。
输出格式
对于每个测试用例,输出一行,格式为 “Case #x: y”,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是距离每个 $t_i + y$ 都能被最大可能的整数因子 $T$ 整除的最小 slarbosecond 数。
说明/提示
**数据范围**
- $1 \leqslant C \leqslant 100$。
- 存在某些 $i, j$ 使得 $t_{i} \neq t_{j}$。
**小数据集(10 分,测试集 1 - 可见)**
- $2 \leqslant N \leqslant 3$。
- $1 \leqslant t_{i} \leqslant 10^{8}$。
**大数据集(23 分,测试集 2 - 隐藏)**
- $2 \leqslant N \leqslant 1000$。
- $1 \leqslant t_{i} \leqslant 10^{50}$。
由 ChatGPT 4.1 翻译