为什么这道题可以用贪心水过去啊啊啊!!!

这道题我的同学把他水掉了,他的水平连我都不如!!!
#include<bits/stdc++.h>
using namespace std;
int q,n,a[100005],s[100005];
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
s[i]=s[i-1]+a[i];
}
cin>>q;
for(int i=1;i<=q;i++){
int k;
cin>>k;
for(int j=1;j<=n;j++){
if(s[j]>k){
cout<<j-1<<endl;
break;
}
if(j==n&&s[j]<=k){
cout<<n<<endl;
}
}
}
return 0;
}
过路的大佬求解!!!是不是数据太水了!!!(qwqaq是我的老师)