#include <iostream>
#include <istream>
#include <sstream>
#include <vector>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <cstring>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <numeric>
#include <chrono>
#include <ctime>
#include <cmath>
#include <cctype>
#include <string>
#include <cstdio>
#include <iomanip>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <functional>
#include <iterator>
using namespace std;
const int maxn = 1e5 + 7;
int n,nMax,input[maxn];
int main()
{
int t,kCase = 0;
cin >> t;
while (t--) {
cin >> n >> nMax;
for (int i = 0; i < n; i++) {
cin >> input[i];
}
sort(input, input + n);
int ans = 0,tMin = 0,tMax = n - 1;
while (tMin <= tMax) {
//考虑最轻的能不能和最重的一起
if (input[tMin] + input[tMax] <= nMax) {
tMin++;
tMax--;
}
else {
//不能放一起 就只能自己单独放
tMax--;
}
ans++;
}
if (kCase++) cout << endl;
cout << ans << endl;
}
return 0;
}
习题8-1(uva-1149)
最新推荐文章于 2022-11-07 16:59:41 发布