1. 程式人生 > >小HY的四元組

小HY的四元組

不用 using urn can int pre ios spa lld

4.7 比賽T1,然而這題爆零了

其實很簡單的...其實哈希都不用

所以首先記錄每組的差值,按其sort一下再暴力找即可

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 using namespace std;
 5 int n,minv,maxv;
 6 long long x,y,z,t;
 7 struct ty{long long a,b,c; int id;}p[500005];
 8 bool cmp(ty x,ty y){if(x.a!=y.a) return
x.a<y.a;if(x.b!=y.b) return x.b<y.b;if(x.c!=y.c) return x.c<y.c;return x.id<y.id;} 9 int main(){ 10 cin>>n; 11 for(int i=1;i<=n;i++) 12 scanf("%lld%lld%lld%lld",&x,&y,&z,&t), 13 p[i].a=y-x,p[i].b=z-y,p[i].c=t-z,p[i].id=i; 14 sort(p+1
,p+n+1,cmp); 15 x=p[1].a;y=p[1].b;z=p[1].c; 16 minv=0x3f3f3f3f; 17 for(int i=2;i<=n;i++) 18 if(p[i].a!=x||p[i].b!=y||p[i].c!=z) 19 x=p[i].a,y=p[i].b,z=p[i].c; 20 else minv=min(minv,p[i].id-p[i-1].id),maxv=max(maxv,p[i].id+p[i-1].id); 21 cout<<minv<<
<<maxv<<endl; 22 return 0; 23 }

小HY的四元組