| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 41763 | seawater | 【S】T2 | C++ | 通过 | 101 | 1622 MS | 3796 KB | 1467 | 2026-05-29 19:40:48 |
#include<bits/stdc++.h> using namespace std; int T,n; int a[300005],b[300005],c[300005],l,r,mid,ans; bool check(int x){ int sum=0,l=1,r=n,mid=0; for(int i=1;i<=n;i++){ l=1,r=n; while(l<=r){ mid=(l+r)/2; if(b[mid]>=a[i]+x){ r=mid-1; } else l=mid+1; } //cout<<r+1<<' '; if(r+1>n){ // cout<<sum<<'.'; sum=min(sum,i-1); break; } c[i]=min(n,n-r+i-1); //cout<<c[i]<<';'; if(!sum) sum=c[i]; sum=min(c[i],sum); } //cout<<'\n'; //if(x=1000000000&&n==3)cout<<sum<<' '<<x<<' '<<'\\'; for(int i=sum+1,l=1;i<=n;i++){ // cout<<b[l]<<' '<<a[i]<<':'; if(b[l]+x<=a[i]) l++; else{ // cout<<'\n'; return 0; } } //cout<<'\n'; return 1; } int main(){ //freopen("cake.in","r",stdin); //freopen("cake.out","w",stdout); ios::sync_with_stdio(false); cin.tie(0); 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); l=0,r=1e9; ans=0; while(l<=r){ mid=(l+r)/2; if(check(mid)){ l=mid+1; ans=mid; } else{ r=mid-1; } // return 0; } cout<<ans<<'\n'; } }// CF1949弱化版大样例,样例过不了 /* 1 3 0 0 0 1000000000 1000000000 1000000000 4 3 0 0 0 1000000000 1000000000 1000000000 5 1 2 3 4 5 1 2 3 4 5 6 0 0 0 100 100 100 100 100 100 0 0 0 7 14 25 62 74 86 95 12 51 62 71 72 92 20 84 */