1.任意のソート方法を使用できます。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 10010
int stamp[MAX];
int main()
{
int n,sum,i,fri_num,tamp;int t=1;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&sum,&fri_num);
for(i=0;i<fri_num;i++)
{
scanf("%d",&stamp[i]);
}
for(i=0;i<fri_num;i++)
{
for(int j=i+1;j<fri_num;j++)
{
if(stamp[i]<stamp[j])
{
tamp=stamp[i];
stamp[i]=stamp[j];
stamp[j]=tamp;
}
}
}
for(i=0;i<fri_num;i++)
{
sum=sum-stamp[i];
if(sum<=0)
{
printf("Scenario #%d:\n%d\n\n",t,i+1);
break;
}
}
if(i==fri_num)
{
printf("Scenario #%d:\nimpossible\n\n",t);
}
t++;
}
return 0;
}