鼓手在乐队中扮演着非常重要的角色——保持节奏。如果鼓手的节奏不稳,可能会毁掉整场演出。
你是某知名摇滚乐队的主唱,现在遇到了一个小麻烦。你的鼓手刚刚离队去当职业游戏玩家了。你需要立即找到一名新鼓手。幸运的是,候选人并不短缺。每个人都想有机会加入你的乐队。你的任务是在候选人中找到最优秀的鼓手,你希望找到那个能保持最稳定节奏的人。
你的计划如下:你将要求每位候选人单独进行试演。在试演过程中,候选人将通过用鼓槌敲击鼓面多次来演奏。理想情况下,连续两次敲击之间的时间差应该完全相同,从而产生完美的节奏。在完美的节奏中,鼓点的时间戳应遵循如下的等差数列:$T_0, T_0 + K, T_0 + 2K, \dots, T_0 + (N - 1)K$。
当然,在现实生活中,人类几乎不可能产生完美的节奏。因此,每位候选鼓手产生的节奏都会有一个误差 $E$,使得每个 $T_i$ 与某个完美节奏的偏差不超过 $E$。给定候选人的一组鼓点序列,请找出该候选人可能试图演奏的所有完美节奏中,最小的可能误差 $E$。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例由两行组成,代表一位候选人的试演。第一行包含一个整数 $N$。下一行包含 $N$ 个以空格分隔的整数,即候选人敲击鼓点的时间戳(以毫秒为单位)。时间戳按递增顺序排列。
输出格式
对于每个测试用例,输出一行 "Case #x: E",其中 $x$ 是测试用例编号(从 1 开始),$E$ 是描述该候选人鼓点序列误差的所有可能数值中的最小值。
如果你的答案与正确答案的绝对误差或相对误差在 $10^{-6}$ 以内,则视为正确。有关这意味着什么以及我们接受何种浮点数格式的说明,请参阅 FAQ。
数据范围
内存限制:1GB。 $1 \le T \le 100$。
小型数据集(测试集 1 - 可见)
时间限制:60 秒。 $2 \le N \le 10$。 $0 \le T_i \le 100$。
大型数据集(测试集 2 - 隐藏)
时间限制:120 秒。 对于 90% 的测试用例,$2 \le N \le 1000$。 对于所有测试用例,$2 \le N \le 50000$。 $0 \le T_i \le 10^6$。
样例
样例输入 1
3 2 10 70 4 0 10 19 30 6 2 5 10 15 20 24
样例输出 1
Case #1: 0 Case #2: 0.5 Case #3: 0.75