题目链接:http://exercise.acmcoder.com/online/online_judge_ques?ques_id=3817&konwledgeId=41
ac代码:
/*
注意:投票可能来自多个候选人
*/
#include<stdio.h>
#include<algorithm>
#include<queue>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main(){
int n,i;
int x,m;
priority_queue<int>q;//优先队列定义,按从大到小输出结果
while(scanf("%d",&n)!=EOF){
while(!q.empty()) q.pop();
for(i=1;i<=n;i++){
scanf("%d",&m);
if(i==1){
x=m;
}else if(m>=x){
q.push(m-x);
}
}
if(q.size()==0){
printf("0\n");
continue;
}
x=0;
while(true){
m=q.top();
q.pop();
if(m<x){
printf("%d\n",x);
break;
}else{
m--;
x++;
q.push(m);
}
}
}
return 0;
}