它输出了20007……
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;//这相当于用ull代替了所有unsigned long long
ull h[20005],n,b,ans=0;
bool cmp(ull a,ull b){//从大到小排序
return a>b;
}
int main(){
cin>>n>>b;
for(ull i=0;i<n;i++) cin>>h[i];
sort(h,h+n,cmp);
ull i=0;//从最高的牛开始判断
while(b>0) {
b-=h[i];//第i高的牛跳上了塔的顶端,所以还需要叠的高度要减少这头牛的高度
ans++;//因此,塔上又多了一头牛
i++;//然后判断下一头牛
}
cout<<ans<<endl;//最后输出
return 0;
}
大佬看一下,怎么回事?