传送门:https://codeforces.com/contest/1445/problem/A
题意:重排两个数组,让这两个数组所有相应位置之和不超过x
题解:一个从小到大sort,一个从大到小sort
代码:
#include<bits/stdc++.h> using namespace std; int a[105],b[105]; int main(){ int t; scanf("%d",&t); while(t--){ int n,x; scanf("%d%d",&n,&x); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(int i=1;i<=n;i++){ scanf("%d",&b[i]); } sort(a+1,a+1+n); sort(b+1,b+1+n,greater<int>()); for(int i=1;i<=n;i++){ if(a[i]+b[i]>x){ printf("NO "); goto A; } } printf("YES "); A:; } return 0; }