#include<iostream>
using namespace std;
int n,b,h[20005],t[20005];
void qsort(int l,int r){
if(l>=r-1) return;
int flag=h[rand()%(r-l)+l];
int p=l,q=r;
for(int i=l;i<r;i++){
if(h[i]<flag) t[p++]=h[i];
else if(h[i]>flag) t[--q]=h[i];
}
for(int i=p;i<q;i++)
t[i]=flag;
for(int i=l;i<r;i++)
h[i]=t[i];
qsort(l,p);
qsort(q,r);
}
int main(){
int sumh=0,sumn=0,k=n-1;
cin>>n>>b;
for(int i=0;i<n;i++)
cin>>h[i];
qsort(0,n);
while(sumh<b){
sumh+=h[k];
k--;
sumn++;
}
cout<<sumn;
return 0;
}
这段程序提交到洛谷上后,全WA,但在本机上测试了#1的数据后,输出却和#1的输出一致!为什么?!