试图让最重的和最轻的同坐一条船,不行的话,只能最重的独用一条船
#include<stdio.h>
#include<stdlib.h>
int per[330];
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int t,n,m,i,ff,tt,zz;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&m,&n);
zz=0;
ff=0;
tt=n-1;
for(i=0;i<n;i++)
scanf("%d",&per[i]);
qsort(per,n,sizeof(per[0]),cmp);
while(1)
{
if(ff==tt)
{
zz++;
break;
}
if((tt+1)==ff)
break;
if((per[ff]+per[tt])<=m)
{
zz++;
ff++;
tt--;
}
else
{
zz++;
tt--;
}
}
printf("%d\n",zz);
}
return 0;
}