| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 41799 | 郭澍宇 | 【S】T2 | C++ | 解答错误 | 95 | 634 MS | 2600 KB | 1333 | 2026-05-29 20:34:02 |
#include<bits/stdc++.h> using namespace std; const int N = 3e5+5; int t,n,a[N],b[N],u[N]; bool ck(int x){ int l = 1,r=1; for(;l<=n;l++){ for(;r<=n;r++){ if(b[r]-a[l]>=x)break; } if(r>=n)break; r++; } int fst = n-l+1; bool flag = 1; for(int i = 1;i<fst;i++){ if(abs(b[i]-a[l+i])<x)flag = 0; } return flag; } int main(){ scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i = 1;i<=n;i++)scanf("%d",&a[i]); for(int i = 1;i<=n;i++)scanf("%d",&b[i]); bool f1=1,f2=1; for(int i = 1;i<=n;i++){ if(a[i]>2||b[i]>2)f1=0; if(a[i]!=i||b[i]!=i)f2=0; } if(f2==1){ printf("%d\n",n/2); continue; } sort(a+1,a+n+1); sort(b+1,b+n+1); /*for(int i = 1;i<=n;i++)printf("%d ",a[i]); printf("\n"); for(int i = 1;i<=n;i++)printf("%d ",b[i]); */ int l = 0,r=1e9+1; // printf("-\n"); //ck(429000000); while(l+1<r){ int mid=(l+r)>>1; if(ck(mid))l=mid; else r=mid; } printf("%d\n",l); } } //0 2 3 4 6 6 6 8 9 9 //0 2 2 4 4 5 6 6 7 8