#include<stdio.h>
#include<algorithm>
using namespace std;
__int64 a[606];
bool judge(__int64 a,__int64 b) {
return a>b;
}
int main() {
__int64 n,m;
while(scanf("%I64d %I64d",&n,&m)!=EOF) {
__int64 t=0,mark,l;
for(l=0; l<m; l++) {
scanf("%I64d",&a[l]);
}
sort(a,a+m,judge);
for(l=0; l<m; l++) {
t=t+a[l];
if(t>=n)
break;
}
if(l<m)
printf("%I64d\n",l+1);
else
printf("impossible\n");
}
return 0;
}

本文通过一个具体的C++实现案例,介绍了如何使用自定义比较函数进行数组排序,并演示了一个简单的程序来解决特定问题:给定一系列整数,在不超过指定总和的前提下找出最长的连续子序列。
480

被折叠的 条评论
为什么被折叠?



