Submission #1275262

#TimeUsernameProblemLanguageResultExecution timeMemory
1275262uzukishinobuTeam Contest (JOI22_team)C++20
100 / 100
77 ms12316 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int a; vector <pair<int,int>> z; vector <pair<int,int>> z1; vector <pair<int,int>> z2; struct node{ int x,y,t; }; node sadge[1000005]; int del[1000005]; int max1=-1; signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> a; for (int i=1;i<=a;i++){ int x,y,t; cin >> x >> y >> t; z.push_back({x,i}); z1.push_back({y,i}); z2.push_back({t,i}); sadge[i]={x,y,t}; } sort(z.begin(),z.end()); sort(z1.begin(),z1.end()); sort(z2.begin(),z2.end()); while (z.size() && z1.size() && z2.size()){ // cerr << z.back().second << " " << z1.back().second << " " << z2.back().second << "\n"; if (del[z.back().second]){ z.pop_back(); continue; }else if (del[z1.back().second]){ z1.pop_back(); continue; }else if (del[z2.back().second]){ z2.pop_back(); continue; } if (z.back().second==z1.back().second){ del[z.back().second]=1; z.pop_back(); z1.pop_back(); continue; } if (z.back().second==z2.back().second){ del[z.back().second]=1; z.pop_back(); z2.pop_back(); continue; } if (z1.back().second==z2.back().second){ del[z1.back().second]=1; z1.pop_back(); z2.pop_back(); continue; } int x=z.back().second; int y=z1.back().second; int t=z2.back().second; if (sadge[y].x==sadge[x].x || sadge[y].t==sadge[t].t){ del[y]=1; z1.pop_back(); continue; } if (sadge[x].y==sadge[y].y || sadge[x].t==sadge[t].t){ del[x]=1; z.pop_back(); continue; } if (sadge[t].x==sadge[x].x || sadge[t].y==sadge[y].y){ del[t]=1; z2.pop_back(); continue; } cout << z1.back().first+z2.back().first+z.back().first << "\n" ; return 0; } cout << -1 << "\n"; return 0; }
#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...