제출 #922449

#제출 시각아이디문제언어결과실행 시간메모리
922449huutuanTeam Contest (JOI22_team)C++14
100 / 100
1545 ms99364 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define isz(x) ((int)x.size()) #define sumof(x) accumulate(all(x), 0ll) const int N=15e4+10; int n, x[N], y[N], z[N]; map<pair<int, int>, set<int>> xy, yz, zx; multiset<int> sx, sy, sz; void solve(){ cin >> n; for (int i=1; i<=n; ++i){ cin >> x[i] >> y[i] >> z[i]; xy[{x[i], y[i]}].insert(i); yz[{y[i], z[i]}].insert(i); zx[{z[i], x[i]}].insert(i); sx.insert(x[i]); sy.insert(y[i]); sz.insert(z[i]); } while (sx.size()){ int mx=*sx.rbegin(); int my=*sy.rbegin(); int mz=*sz.rbegin(); bool stop=1; if (xy.count({mx, my}) && xy[{mx, my}].size()){ for (int i:xy[{mx, my}]){ sx.erase(sx.find(x[i])); sy.erase(sy.find(y[i])); sz.erase(sz.find(z[i])); yz[{y[i], z[i]}].erase(i); zx[{z[i], x[i]}].erase(i); } xy[{mx, my}].clear(); stop=0; } if (yz.count({my, mz}) && yz[{my, mz}].size()){ for (int i:yz[{my, mz}]){ sx.erase(sx.find(x[i])); sy.erase(sy.find(y[i])); sz.erase(sz.find(z[i])); zx[{z[i], x[i]}].erase(i); xy[{x[i], y[i]}].erase(i); } yz[{my, mz}].clear(); stop=0; } if (zx.count({mz, mx}) && zx[{mz, mx}].size()){ for (int i:zx[{mz, mx}]){ sx.erase(sx.find(x[i])); sy.erase(sy.find(y[i])); sz.erase(sz.find(z[i])); xy[{x[i], y[i]}].erase(i); yz[{y[i], z[i]}].erase(i); } zx[{mz, mx}].clear(); stop=0; } if (stop) break; } if (sx.size()) cout << (*sx.rbegin()+*sy.rbegin()+*sz.rbegin()); else cout << -1; } int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int ntests=1; // cin >> ntests; for (int i=1; i<=ntests; ++i) solve(); 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...