RT,是我思路有问题?
#include <bits/stdc++.h>
typedef long long LL;
typedef unsigned long long ULL;
typedef long double LD;
#define mem(l,val) memset((l),(val),(sizeof(l)))
using namespace std;
const int INF = 2147483647;
int a[105],b[105],sum,T,k;
int main(int argc,char *argv[])
{//0 0 0 0 0 1 1 1 1 1
scanf("%d",&T);
while(T--)
{
mem(a,0);mem(b,0);
k = 0;sum = 0;
int n,flag = 0;
scanf("%d",&n);
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+n+1);sort(b+1,b+n+1);
for(int i = 1;i <= n;++i)
if(b[i]-a[i] > 1) {puts("NO");flag = 1;break;}
if(flag) continue;
for(int i = 1;i <= n;++i)
if(b[i] != a[i]) ++sum,k = i;
if(k < sum) puts("NO");
else puts("YES");
}
return 0;
}