一个升序,一个降序,然后从前往后比对是否有 >x
的数对出现即可
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 100;
int a[N], b[N];
bool cmp(int a, int b)
{
return a > b;
}
int main()
{
int t, n, x;
cin >> t;
while (t--)
{
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, cmp);
bool flag = false;
for (int i = 0; i < n; i++)
{
if (a[i] + b[i] > x)
{
flag = true;
break;
}
}
if (flag) cout << "No" << endl;
else cout << "Yes" << endl;
cin.get();
}
return 0;
}