| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 38478 | 郭澍宇 | 【J】T2 | C++ | 通过 | 100 | 137 MS | 5720 KB | 1050 | 2025-10-08 15:53:04 |
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n; struct node{ ll id,num; }a[300005]; bool cmp(node x,node y){return x.num<y.num;} ll cnt[100005]; ll c=0; bool check(ll k){ ll l=1,r=1; ll cntz=0; c=0; memset(cnt,0,sizeof cnt); for(l=1;l<=3*n;l++){ if(cnt[a[l-1].id]==1)c--; cnt[a[l-1].id]--; while(a[r].num<a[l].num+k&&r<=3*n){ if(cnt[a[r].id]==0)c++; cnt[a[r].id] ++; r++; } if(c==n)return 1; } return 0; } int main(){ scanf("%d",&n); ll cnt = 0; for(int i = 1;i<=n;i++){ cnt++; scanf("%d",&a[cnt].num); a[cnt].id=i; cnt++; scanf("%d",&a[cnt].num); a[cnt].id=i; cnt++; scanf("%d",&a[cnt].num); a[cnt].id=i; } sort(a+1,a+3*n+1,cmp); ll l=0,r=1e9; while(l+1<r){ ll mid=(l+r)>>1; if(check(mid)) r=mid; else l=mid; } cout<<l<<endl; }