杭州网站设计工作室/windows优化大师手机版
给定两个数组 aaa 和 bbb,每个数组中都包含 nnn 个正整数。
再给定一个整数 xxx。
请你判断,能否通过重新排列 bbb 中的元素,使得 ai+bi≤xa_i+b_i≤xai+bi≤x 对于每个 iii(1≤i≤n1≤i≤n1≤i≤n)成立。
输入格式
第一行包含整数 TTT,表示共有 TTT 组测试数据。
每组数据第一行包含两个整数 nnn 和 xxx。
第二行包含 nnn 个整数 a1,a2,…,ana_1,a_2,…,a_na1,a2,…,an。
第三行包含 nnn 个整数 b1,b2,…,bnb_1,b_2,…,b_nb1,b2,…,bn。
注意,两个数组内的元素都是以非降序的顺序给出。
每组数据之间,用空行隔开。
输出格式
每组数据输出一行结果,如果能够通过重新排列 bbb 中的元素,使得 ai+bi≤xa_i+b_i≤xai+bi≤x 对于每个 iii(1≤i≤n1≤i≤n1≤i≤n)成立,则输出 Yes
,否则输出 No
。
数据范围
1≤T≤100,1≤T≤100,1≤T≤100,
1≤n≤50,1≤n≤50,1≤n≤50,
1≤x≤1000,1≤x≤1000,1≤x≤1000,
1≤a1≤a2≤…≤an≤x,1≤a_1≤a_2≤…≤a_n≤x,1≤a1≤a2≤…≤an≤x,
1≤b1≤b2≤…≤bn≤x1≤b_1≤b_2≤…≤b_n≤x1≤b1≤b2≤…≤bn≤x
输入样例:
4
3 4
1 2 3
1 1 22 6
1 4
2 54 4
1 2 3 4
1 2 3 41 5
5
5
输出样例:
Yes
Yes
No
No
#include<iostream>using namespace std;const int N = 55;int n, x;
int a[N], b[N];int main(){int t;cin >> t;while(t--){cin >> n >> x;for(int i = 0; i < n; i++) cin >> a[i];for(int i = 0; i < n; i++) cin >> b[i];bool flag = true;for(int i = 0; i < n; i++)if(a[i] + b[n-i-1] > x){flag = false;break;}if(flag) puts("Yes");else puts("No");}return 0;
}