问题 B: 吃萝卜
时间限制: 1 Sec 内存限制: 128 MB
[状态] [提交] [命题人:admin]
题目描述
兔子有N盒胡萝卜,编号0到N-1,第i盒包含a[i]根胡萝卜。她决定从这些盒子里总共吃K根胡萝卜。她一次只吃一根胡萝卜,每次从胡萝卜最多的盒子里选一个胡萝卜吃。如果有多个满足条件的盒子,她将选择其中编号最小的盒子。输出最后一次吃胡萝卜的盒子编号。
输入
第1行,两个正整数,N和K。1<=N<=50。
第2行,N个整数,第i个整数是a[i]。1<=a[i]<=100。数据保证所有的胡萝卜总和大于等于K。
输出
一个整数,表示最后一次吃胡萝卜的盒子编号
样例输入 Copy
2 3
5 8
样例输出 Copy
1
注意
他的编号是从零开始。
上代码
#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
int main() {
int n,m,x,i,j,s;
int a[1001];
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
while(m--){
x=a[1];
s=1;
for(i=1;i<=n;i++)
if(a[i]>x)
{
s=i;
x=a[i];
}
a[s]--;
}
printf("%d\n",s-1);
return 0;
}