提交时间:2026-05-29 19:45:54
运行 ID: 41768
#include<bits/stdc++.h> using namespace std; #define int long long int t,n,a[300005],b[300005]; int check2(int mid,int mid1){ int ans=LLONG_MAX; for(int i=1;i<=mid1;i++)if(abs(b[n-mid1+i]-a[i])<mid)return false; return true; } int check3(int mid,int mid1){ int ans=LLONG_MAX; for(int i=mid1+1;i<=n;i++)if(abs(b[i-mid1]-a[i])<mid)return false; return true; } bool check(int mid){ int l=1,r=n; while(l<r){ int mid1=(l+r+1)>>1; if(check2(mid,mid1))l=mid1; else r=mid1-1; } return check3(mid,l); } signed main(){ cin>>t; while(t--){ cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++)cin>>b[i]; sort(a+1,a+n+1); sort(b+1,b+n+1); int l=0,r=1e9; while(l<r){ int mid=(l+r+1)>>1; if(check(mid))l=mid; else r=mid-1; } cout<<l<<endl; } return 0; }