#include <bits/stdc++.h>
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define pb push_back
#define FIO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
using namespace std;
typedef long long ll;
typedef pair <ll, ll> pii;
const int N = 15e4 + 7;
int n;
int a[N], b[N], c[N], ia[N], ib[N], ic[N], bio[N];
int check(int x, int y, int z) {
if (b[x] >= b[y] && b[x] >= b[z]) return 1;
if (c[x] >= c[y] && c[x] >= c[z]) return 1;
if (a[y] >= a[x] && a[y] >= a[z]) return 2;
if (c[y] >= c[x] && c[y] >= c[z]) return 2;
if (a[z] >= a[x] && a[z] >= a[y]) return 3;
if (b[z] >= b[x] && b[z] >= b[y]) return 3;
return 0;
}
int main () {
FIO;
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i] >> b[i] >> c[i], ia[i] = ib[i] = ic[i] = i;
sort(ia, ia+n, [&](int x, int y){return a[x] < a[y];});
sort(ib, ib+n, [&](int x, int y){return b[x] < b[y];});
sort(ic, ic+n, [&](int x, int y){return c[x] < c[y];});
int x = n-1, y = n-1, z = n-1;
while (x >= 0 && y >= 0 && z >= 0) {
while (x >= 0 && bio[ia[x]]) x--;
while (y >= 0 && bio[ib[y]]) y--;
while (z >= 0 && bio[ic[z]]) z--;
if (x < 0 || y < 0 || z < 0) break;
int o = check(ia[x], ib[y], ic[z]);
if (!o) break;
if (o == 1) bio[ia[x]] = 1;
if (o == 2) bio[ib[y]] = 1;
if (o == 3) bio[ic[z]] = 1;
}
if (x < 0 || y < 0 || z < 0) cout << -1;
else cout << a[ia[x]]+b[ib[y]]+c[ic[z]];
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... |