提交时间:2026-05-29 20:13:37
运行 ID: 41788
#include<bits/stdc++.h> using namespace std; long long a[300005],b[300005],n; bool check(long long mid) { long long i=1,j=1,cnt=0; while(i<=n&&j<=n) { if(a[i]+mid<=b[j]) { cnt++,i++,j++; } else { j++; } } cout<<mid<<' '<<cnt<<endl; for(i=cnt+1;i<=n;i++) { if(b[i]<a[i-cnt]+mid) return false; } return true; } int main() { long long t; cin>>t; while(t--) { cin>>n; for(long long i=1;i<=n;i++) cin>>a[i]; for(long long i=1;i<=n;i++) cin>>b[i]; sort(a+1,a+1+n); sort(b+1,b+1+n); long long l=0,r=1000000000,mid,ans; while(l<=r) { mid=(l+r)/2; if(check(mid)) { ans=mid; l=mid+1; } else r=mid-1; } cout<<ans<<endl; } return 0; }