2 solutions

  • 2
    @ 2025-6-20 22:38:23
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n,b;
        cin>>n>>b;
        vector<int> v;
        int x;
        while(cin>>x)
        {
            v.push_back(x);
        }
        sort(v.begin(),v.end());
        int s=0;
        int cnt=0;
        while(s<b)
        {
            s+=v.back();
            v.pop_back();
            cnt++;
        }
        cout<<cnt;
        return 0;
    }
    //包对的,放心食用。
    
    • 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;
      }
      
      • 1

      Information

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