This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |