某位选手写出了这种ac程序:
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
int n,w,ans,sum;
int a[maxn],dp[maxn];
int main() {
scanf("%d",&n);
for (int i=1;i<=n;i++) {
scanf("%d",&a[i]);
}
scanf("%d",&w);
sort(a+1,a+1+n);
if (w<a[1]) {puts("0"); return 0;}
int pos=lower_bound(a+1,a+1+n,w)-(a+1);
int sum=a[pos];
for (int i=1;i<=n;i++) {
if (a[i]<=sum) {
sum-=a[i]; ans++;
} else {
break;
}
}
printf("%d\n",ans);
return 0;
}
hack数据:
3
2 3 4
2
选手输出:
0
答案输出
1