今天在做洛谷奶牛问题(P2676 [USACO07DEC] Bookshelf B)时候一直没法通过,原来是忘记了sort排序是按照升序排序的方法进行的,想要将许排序需要增加greater<int>()参数。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int M,N;
vector<int>number;
void input()
{
cin>>M>>N;
for(int i=0;i<M;i++)
{
int x;
cin>>x;
number.push_back(x);
}
sort(number.begin(),number.end(),greater<int>());
}
int caculate()
{
int min=0;
int ans=0;
for(int i=0;i<M;i++)
{
min+=number[i];
if(min>=N)
{
ans=i+1;
break;
}
}
return ans;
}
int main()
{
input();
cout<<caculate()<<endl;
return 0;
}