Submission #1244290

#TimeUsernameProblemLanguageResultExecution timeMemory
1244290ereringTeam Contest (JOI22_team)C++20
100 / 100
81 ms17016 KiB
#include <bits/stdc++.h> #define pb push_back #define int long long #define endl '\n' using namespace std; const int N=2e5+5,inf=2e8,MOD=1e9+9; struct info{ int x,y,z,id; friend bool operator<(info a,info b){ return a.x<b.x; } }; bool vis[N]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; vector<info> x,y,z; for(int i=0;i<n;i++){ int a,b,c; cin>>a>>b>>c; x.pb({a,b,c,i}); y.pb({b,a,c,i}); z.pb({c,a,b,i}); } sort(x.begin(),x.end()); sort(y.begin(),y.end()); sort(z.begin(),z.end()); int l1=n-1,l2=n-1,l3=n-1; while(l1>=0 || l2>=0 || l3>=0){ //cout<<x[l1].id<<' '<<y[l2].id<<' '<<z[l3].id<<endl; while(l1>=0 && vis[x[l1].id])l1--; while(l2>=0 && vis[y[l2].id])l2--; while(l3>=0 && vis[z[l3].id])l3--; if(l1<0 || l2<0 || l3<0)break; if(x[l1].id==y[l2].id || x[l1].id==z[l3].id){ vis[x[l1].id]=1; if(x[l1].id==y[l2].id){ vis[y[l2].id]=1; l2--; } if(x[l1].id==z[l3].id){ vis[z[l3].id]=1; l3--; } l1--; continue; } if(y[l2].id==z[l3].id){ vis[y[l2].id]=1; vis[z[l3].id]=1; l2--; l3--; continue; } int mx=x[l1].x,my=y[l2].x,mz=z[l3].x; bool flag=1; if(x[l1].y==my || x[l1].z==mz){ vis[x[l1].id]=1; l1--; flag=0; } while(l1>=0 && vis[x[l1].id])l1--; if(l1<0 || l2<0 || l3<0)break; if(y[l2].y==mx || y[l2].z==mz){ vis[y[l2].id]=1; l2--; flag=0; } while(l2>=0 && vis[y[l2].id])l2--; if(z[l3].y==mx || z[l3].z==my){ vis[z[l3].id]=1; l3--; flag=0; } while(l3>=0 && vis[z[l3].id])l3--; if(!flag)continue; cout<<mx+my+mz; return 0; } cout<<-1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...