#include "bits/stdc++.h"
using namespace std;
#define s second
#define f first
#define pb push_back
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<pii> vpii;
typedef vector<int> vi;
#define FOR(i, a, b) for (int i = (a); i<b; i++)
bool ckmin(int& a, int b){ return b < a ? a = b, true : false; }
bool ckmax(int& a, int b){ return b > a ? a = b, true : false; }
const int N = 15e4 + 10;
int a[N], b[N], c[N];
set<pii> x, y, z;
void delet(int i) {
x.erase({a[i], i});
y.erase({b[i], i});
z.erase({c[i], i});
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
FOR(i, 0, n) {
cin >> a[i] >> b[i] >> c[i];
a[i] = -a[i];
b[i] = -b[i];
c[i] = -c[i];
x.insert({a[i], i});
y.insert({b[i], i});
z.insert({c[i], i});
}
int res = -1;
while (x.size()) {
vi inds = {(*x.begin()).s, (*y.begin()).s, (*z.begin()).s};
vi mn = {0, 0, 0};
bool chg=false;
FOR(ind, 0, 3) {
ckmin(mn[0], a[inds[ind]]);
ckmin(mn[1], b[inds[ind]]);
ckmin(mn[2], c[inds[ind]]);
}
for (auto ind: inds) {
int cnt = (a[ind] == mn[0]) + (b[ind] == mn[1]) + (c[ind] == mn[2]);
if (cnt > 1) {
chg=true;
delet(ind);
break;
}
}
if (!chg)break;
}
if (x.size()) res = -(*x.begin()).f - (*y.begin()).f - (*z.begin()).f;
cout << res << endl;
}
# | 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... |