| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 41753 | 王阡陌 | 【S】T2 | C++ | 解答错误 | 23 | 995 MS | 4948 KB | 725 | 2026-05-29 19:29:52 |
#include<bits/stdc++.h> using namespace std; long long a[300005],b[300005],n; bool check(int 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++; } } for(long long 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; }