编程题
### 问题描述
小蓝决定举办一场特殊的活动。这个活动中,小蓝邀请了 $N$ 位市民,并为每位市民分发了一定数量的金币。你得到了一个大小为 $N$ 的数组 $A$,其中 $A_i$ 代表第 $i$ 位市民所得到的金币数量。
然而,有一个特殊的传说:任何一个市民都可以选择成为和尚,离开这个城市并将他的金币部分或全部分发给剩余的市民。如果第 $i$ 位市民决定成为和尚,他会:
- 离开这个城市,使得城市中的市民数量减少 1。
- 分发 $X$($0 \leq X \leq A_i$)枚金币给剩余的市民(不一定平均分发)。每位和尚可以自由选择他的 $X$ 值,不同的和尚可能选择不同的 $X$ 值。
- 带走剩余的 $A_i - X$ 枚金币。
小蓝的目标是,通过一系列的和尚转化,使得最后剩余在城市中的所有市民拥有相同数量的金币。你的任务是帮助小蓝确定最少需要多少位市民成为和尚,才能达到这个目标。
### 输入格式
第一行包含一个单独的整数 $N$,表示市民的数量。
第二行包含 $N$ 个空格分隔的整数:$A_1, A_2, ..., A_N$,表示每位市民初始得到的金币数量。
数据范围保证:$1 \leq N \leq 10^3$,$1 \leq A_i \leq 10^5$。
### 输出格式
输出一个数字,表示需要最少多少位市民成为和尚。
### 样例输入
```text
5
2 1 2 1 1
```
### 样例输出
```text
2
```
### 说明
测试用例:两个人成为和尚的方法如下:
- 第 $2$ 个人成为和尚,并带走他的 $1$ 枚金
- 第 $3$ 个人成为和尚,并分别给第 $4$ 个人和第 $5$ 个人各赠送一枚金币
现在城市中剩余的每个人都拥有 $2$ 枚金币。