问题 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;
    }