2 solutions

  • 1
    @ 2026-7-9 15:10:48
    #include<bits/stdc++.h>
    using namespace std;
    const int N=20010;
    int a[N];
    int main()
    {
        int n,m;
        cin>>n>>m;
        for(int i=0;i<n;i++)
        {
            cin>>a[i];
        }
        sort(a,a+n); //从小到大 
        reverse(a,a+n); //从大到小 
        int sum=0; //已有高度 
        int cnt=0; //已选牛的数目 
        for(int i=0;i<n;i++) //依次枚举每头牛 
        {
            sum+=a[i];
            cnt++;
            if(sum>=m) //已经达到书架的高度 
            {
                break;
            }
        }
        cout<<cnt;
        return 0;
    }
    

    Information

    ID
    1013
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    (None)
    # Submissions
    30
    Accepted
    20
    Uploaded By