CF2140F.Sum Minimisation
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 n 的数组 a,你可以对数组 a 执行如下操作任意次(包括零次):
- 任意选择 k 个不同的下标组成集合 S={i1,i2,…,ik},其中 1≤ij≤n,对于所有 1≤j≤k。
- 计算 x=ai1+ai2+⋯+aik,然后设 y=x−⌊kx⌋⋅k。
- 在选中的元素 ai1,…,aik 中,对其中 y 个最小的值各减少 1。
- 如果两个元素值不同(ai=aj),值较小者为更小的元素。
- 如果两个元素值相同(ai=aj),下标较小者为更小的元素。
- 如果 y=0,则不减少任何元素。
你的任务是,在任意次数操作之后,求数组 a 所有元素之和能达到的最小可能值,或者判断是否能够无限减少。
输入格式
每个测试点包含多组测试数据。第一行给出测试用例数 t(1≤t≤104)。
接下来每组测试数据:
第一行包含一个整数 n(1≤n≤106),表示数组 a 的长度。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),表示数组 a 的元素。
保证所有测试数据中 n 的总和不超过 106。
输出格式
对于每个测试用例,输出一行,表示执行上述操作若干次后,数组 a 的元素和可以达到的最小值。
如果数组元素和能被无限减少,输出 −1。
输入输出样例
输入#1
3 2 2 1 4 3 3 3 3 8 1 2 3 4 5 6 7 8
输出#1
2 12 -1
说明/提示
在第一个测试点中,我们只能对整个数组操作一次,最终可以得到 a=[2,0],之后无法再进行操作使其和减少。
在第二个测试点中,无法通过任何操作减少和,因此答案为数组元素之和。
在第三个测试点中,存在一系列操作可以使数组总和无限减少。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?