Submission #1184814

#TimeUsernameProblemLanguageResultExecution timeMemory
1184814user192837Team Contest (JOI22_team)C++17
100 / 100
76 ms9228 KiB
#include <bits/stdc++.h>
#define ar array
#define all(x) x.begin(), x.end()
using namespace std;
typedef long long ll;

const int N = 2e5;
ar <int, 2> a[3][N];
int b[3][N];

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int n;
    cin >> n;
    vector <ar <int, 2>> x(n), y(n), z(n);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < 3; j++) {
            cin >> a[j][i][0];
            a[j][i][1] = i;
            b[j][i] = a[j][i][0];
        }
    }
    for (int i = 0; i < 3; i++)
        sort(a[i], a[i] + n, greater <ar <int, 2>>());
    vector <int> p(3, 0);
    int nok = 1;
    while (max(p[0], max(p[1], p[2])) < n && nok) {
        nok = 0;
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                if (i != j) {
                    if (b[j][a[i][p[i]][1]] >= a[j][p[j]][0]) {
                        nok = 1;
                        p[i]++;
                        break;
                    }
                }
            }
        }
    }
    int ans = 0;
    for (int i = 0; i < 3; i++) {
        if (p[i] == n)
            return cout << -1, 0;
        ans += a[i][p[i]][0];
    }
    cout << ans << '\n';
}
#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...