思路 sort一遍 从首位开始往中间加
1.两个人体重和小于船承重 船数量加一 这两个人就算安排好了
2.两个人体重和大于船承重 船数量加一 只安排重的那个人 ,轻的再安排
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <string.h>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <set>
typedef long long ll;
using namespace std;
int main(){
int t;
int n,m,sum;
int a[10000];
cin>>t;
while(t--){
cin>> m >> n;
sum=0;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a, a+n);
int p,q;
p=0;
q=n-1;
while(p<=q){
if(a[p]+a[q]<=m){sum++;q--;p++;}
else{sum++;q--;}
}
printf("%d\n",sum);
}
return 0;
}