Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38497 hi_hi 【J】T2 C++ 通过 100 84 MS 28132 KB 1197 2025-10-09 14:17:28

Tests(10/10):


#include<bits/stdc++.h> using namespace std; long long n,a[100005],b[100005],c[100005],tot[100005]; struct sss{ long long num,cy,ji; bool operator<(const sss x)const{ return x.num<num; } }; struct sss2{ long long num,cy; }aa[300005]; priority_queue<sss>q; bool cmp(sss2 x,sss2 y){ return x.num<y.num; } int main(){ scanf("%lld",&n); for(int i=1;i<=n;i++){ scanf("%lld%lld%lld",&a[i],&b[i],&c[i]); if(a[i]>b[i]){ swap(a[i],b[i]); } if(b[i]>c[i]){ swap(b[i],c[i]); } //q.push((sss){a[i],i,1}); aa[(i-1)*3+1]=((sss2){a[i],i}); aa[(i-1)*3+2]=((sss2){b[i],i}); aa[(i-1)*3+3]=((sss2){c[i],i}); } long long ans=0x3f3f3f3f3f3f3f3f,jj=0; sort(aa+1,aa+3*n+1,cmp); for(int i=1;i<=3*n;i++){ tot[aa[i].cy]++; if(tot[aa[i].cy]==1){ jj++; } q.push((sss){aa[i].num,aa[i].cy,tot[aa[i].cy]}); //printf("%lld ",aa[i].num); while(!q.empty() && tot[q.top().cy]!=q.top().ji)q.pop(); if(jj>=n)ans=min(ans,aa[i].num-q.top().num); } printf("%lld",ans); }


测评信息: