思路
用最大的匹配的最小的,如果和不满足小于x,则数组肯定没有解,依次类推,第二大的匹配第二小的
C++ 代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 55;
int a[N], b[N];
int main()
{
int T;
cin >> T;
while (T -- )
{
int n, x;
cin >> n >> x;
for (int i = 0; i < n; i ++ ) scanf("%d", &a[i]);
for (int i = 0; i < n; i ++ ) scanf("%d", &b[i]);
sort(a, a + n);
sort(b, b + n);
int s = 1;
for (int i = 0; i < n; i ++ )
{
if ( a[i] + b[n - i - 1] > x)
{
printf("No\n");
s = 0;
break;
}
}
if (s) printf("Yes\n");
}
return 0;
}