【杭电】[2124]Repair the Wall
排序之后由大向小取就好
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[620];
int main() {
__int64 l,n;
while(scanf("%I64d %d",&l,&n)!=EOF) {
for(int i=0; i<n; i++)
scanf("%I64d",&a[i]);
sort(a,a+n);
int cnt=0;
for(int i=n-1; i>=0; i--) {
if(l<=0)
break;
l-=a[i];
cnt++;
}
if(l>0)
printf("impossible\n");
else
printf("%d\n",cnt);
}
return 0;
}