コードフォースの練習問題の達成から問題を解決していました。効率的な解決策を見つけることができません。次の問題を解決するにはどうすればよいですか? 強引な解決策しか思い浮かばない
Polycarpus には、n 個の整数 a1、a2、...、an からなる配列があります。Polycarpus は、配列内の数値が一致することを好みます。そのため、彼は配列にできるだけ多くの等しい数を持たせたいと考えています。そのために、Polycarpus は次の操作を複数回実行します。
配列 ai, aj (i ≠ j) の 2 つの要素を選択します。彼は同時に、数値 ai を 1 増やし、数値 aj を 1 減らします。つまり、ai = ai + 1 と aj = aj - 1 を実行します。指定された操作は、正確に 2 つの異なる配列要素を変更します。Polycarpus は、記述された操作を無限に適用できます。
ここで、彼は、そのような操作を任意の回数実行した場合に取得できる等しい配列要素の最大数を知りたいと考えています。ポリカルポスを助けて。
入力 最初の行には、整数 n (1 ≤ n ≤ 105) — 配列サイズが含まれます。2 行目には、スペースで区切られた整数 a1、a2、...、an (|ai| ≤ 104) — 元の配列が含まれます。
出力 単一の整数を出力します。指定された操作を任意の回数実行した場合に取得できる等しい配列要素の最大数です。
Sample test(s)
input
2
2 1
output
1
input
3
1 4 1
output
3