#include<bits/stdc++.h>
using namespace std;
//判断选票赢了没有
bool getwin(vector<int> &a){
for(int i=1;i<a.size();i++){
if(a[i]>=a[0])
return false;
}
return true;
}
//如果没赢,找到最多票者和下标,让其自减,1号自增
void getmax(vector<int> &b){
int maxnum=b[1],index=1;
for(int i=2;i<b.size();i++){
if(b[i]>maxnum)
maxnum=b[i],index=i;
}
--b[index],++b[0];
}
int main(){
int n;
while(cin>>n){
vector<int> data(n);
for(int i=0;i<n;i++){
int vote;
cin>>vote;
data[i]=vote;
}
int origin=data[0];
while(!getwin(data)) //循环判断
getmax(data);
int count=data[0]-origin;
cout<<count<<endl;
}
return 0;
}
04-12
1345
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)