#include <bits/stdc++.h> using namespace std; #define all(x) ::begin(x), ::end(x) #define tsolve int t; cin >> t; while (t--) solve #define sz(x) (int)::size(x) using ll = long long; using ld = long double; void solve() { int n, k; cin >> n >> k; vector<int> a(n); for (int& e : a) cin >> e; sort(all(a)); auto check = [&](int r) { int ptr = r-1; int cnt = 0; for (int i=0; i<r; i++) { while (ptr > i && a[i] + a[ptr] >= k) ptr--; if (ptr <= i) break; cnt++; ptr--; } return r - cnt; }; int l = -1, r = 0; while (r < n && a[r] < k) r++; while (l+1 < r) { int m = (l+r) / 2; if (check(m) >= n-m) r = m; else l = m; } int ans = max(check(r), n-r) - 1; cout << ans << '\n'; } int main() { cout.tie(0)->sync_with_stdio(false); cout << setprecision(16); tsolve(); }