我正在解决codeforces实践问题实现的问题。我无法找到有效的解决方案。如何解决以下问题?我只能想到一个蛮力解决方案
Polycarpus 有一个数组,由 n 个整数 a1, a2, ..., an 组成。当数组中的数字匹配时,Polycarpus 喜欢它。这就是为什么他希望数组有尽可能多的相等数字。为此,Polycarpus 多次执行以下操作:
他选择数组 ai、aj (i ≠ j) 的两个元素;他同时将数字 ai 增加 1 并将数字 aj 减少 1,即执行 ai = ai + 1 和 aj = aj - 1。给定的操作恰好改变了两个不同的数组元素。Polycarpus 可以无限次地应用所描述的操作。
现在他想知道如果他执行任意数量的此类操作,他可以获得多少相等的数组元素。帮助多卡普斯。
输入 第一行包含整数 n (1 ≤ n ≤ 105) — 数组大小。第二行包含空格分隔的整数 a1, a2, ..., an (|ai| ≤ 104) — 原始数组。
输出打印一个整数——如果他执行任意数量的给定操作,他可以获得的最大相等数组元素数。
Sample test(s)
input
2
2 1
output
1
input
3
1 4 1
output
3