Submission #1139091

#TimeUsernameProblemLanguageResultExecution timeMemory
1139091beabossTeam Contest (JOI22_team)C++20
100 / 100
282 ms23336 KiB
#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 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...