提交时间:2026-05-29 20:26:25

运行 ID: 41794

#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(a[i]<b[i-cnt]+mid) return false; cout<<a[i-cnt]<<' '<<mid<<endl; } 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); // for(long long i=1;i<=n;i++) cout<<a[i]<<' '; // cout<<endl; // for(long long i=1;i<=n;i++) cout<<b[i]<<' '; //cout<<endl; 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; }