#CF2140F. 总和最小化
总和最小化
给定一个长度为 的数组 ,你可以对数组执行任意次下述操作(包括 次):
- 选择任意 个不同的下标集合 ,满足 。
- 计算和 ,并计算 $y = x - \left\lfloor \dfrac{x}{k} \right\rfloor \cdot k$ (即 )。
- 在选中的 个元素中,将最小的 个元素各减 。
- 若 ,值更小的元素更小;
- 若 ,下标更小的元素更小。
- 若 ,则不执行任何减法。
你的任务是求出:执行任意次操作后,数组元素总和的最小可能值。 如果数组总和可以无限减小,则输出 。
输入格式
多组测试用例。 第一行输入整数 (),表示测试组数。
每组测试用例:
- 第一行输入整数 (),表示数组长度。
- 第二行输入 个整数 ()。
保证:所有测试用例的 之和不超过 。
输出格式
对每组测试用例,输出数组总和能达到的最小可能值。 若总和可以无限减小,输出 。
样例输入
3
2
2 1
4
3 3 3 3
8
1 2 3 4 5 6 7 8
样例输出
2
12
-1
样例说明
- 第一组:对整个数组执行一次操作后得到 ,无法继续减小,总和为 。
- 第二组:任何操作都无法减小数组,答案为原数组和 。
- 第三组:存在操作序列可以让总和无限减小,答案为 。