杭电acm2124
贪心
#include <stdio.h>
#include <algorithm>
using namespace std;
bool cmp(const int &a, const int &b) {
return a > b;
}
int main() {
int l, n, i, ans, ids, sum;
int d[600];
while(~scanf("%d%d", &l, &n)) {
sum = 0;
for(i=0; i<n; i++) {
scanf("%d", &d[i]);
sum += d[i];
}
if(sum < l) {
printf("impossible\n");
continue;
}
sort(d, d+n, cmp);
ans = 0;
ids = 0;
while(l>0 && ids<n) {
if(l>d[ids]) {
l -= d[ids];
ans ++;
} else {
ans ++;
l = 0;
}
ids ++;
}
printf("%d\n", ans);
}
return 0;
}

浙公网安备 33010602011771号