Submission #1370350

#TimeUsernameProblemLanguageResultExecution timeMemory
1370350pirmyratgTeam Contest (JOI22_team)C++20
100 / 100
66 ms6432 KiB
#include "bits/stdc++.h"

using namespace std;

#define ll long long
#define ff first
#define ss second
#define pb push_back
#define SZ(s) (int)s.size()

const int N = 150005;

int n;
int x[N], y[N], z[N];
int ok[N];
vector <pair <int, int>> a, b, c;

void solve() {
    cin >> n;

    for(int i = 1; i <= n; i++) {
        cin >> x[i] >> y[i] >> z[i];
        a.pb({x[i], i});
        b.pb({y[i], i});
        c.pb({z[i], i});
    }

    sort(a.begin(), a.end());
    sort(b.begin(), b.end());
    sort(c.begin(), c.end());

    while(SZ(a) and SZ(b) and SZ(c)) {
        vector <int> v;
        v.pb(a.back().ss);
        v.pb(b.back().ss);
        v.pb(c.back().ss);

        int f = 1;

        for(auto i : v) {
            int cnt = 0;

            if(a.back().ff == x[i]) cnt++;
            if(b.back().ff == y[i]) cnt++;
            if(c.back().ff == z[i]) cnt++;

            if(cnt > 1) ok[i] = 1;
        }

        if(ok[a.back().ss]) {
            a.pop_back();
            f = 0;
        }

        if(ok[b.back().ss]) {
            b.pop_back();
            f = 0;
        }

        if(ok[c.back().ss]) {
            c.pop_back();
            f = 0;
        }

        if(f) {
            cout << 1LL * a.back().ff + b.back().ff + c.back().ff << '\n';
            return;
        }
    }

    cout << -1 << '\n';
}

int main() {
    ios::sync_with_stdio(false); cin.tie(nullptr);

//    freopen("minimum.inp", "r", stdin);
//    freopen("minimum.out", "w", stdout);

    int t = 1;
    while(t--) {
        solve();
    }

    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...