题目
题意
给出n个人的选票数,第1个是主角。问最少需要贿赂几张选票才能使主角得到最高的选票。
最开始想会不会是数学题,最后发现模拟就可以。
代码
#include<bits/stdc++.h>
using namespace std;
int n,s[100];
int max_0(){
for(int i=1;i<n;i++){
if(s[i]>=s[0]) return 0;
}
return 1;
}
int main() {
cin>>n;
for(int i=0; i<n; i++) {
cin>>s[i];
}
int t=s[0];
while(!max_0()) {
int tmp=-1,ti;
for(int i=1; i<n; i++) {
if(s[i]>=tmp) {tmp=s[i];ti=i;}
}
s[ti]--;
s[0]++;
}
printf("%d\n",s[0]-t);
return 0;
}