Submission #896465

#TimeUsernameProblemLanguageResultExecution timeMemory
896465fanwenTeam Contest (JOI22_team)C++17
100 / 100
74 ms9612 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define ll long long #define file(name) \ if(fopen(name".inp", "r")) \ freopen(name".inp", "r", stdin), freopen(name".out", "w", stdout); const int MAX = 1.5e5 + 5; int n, a[MAX][3]; pair <int, int> p[3][MAX]; void you_make_it(void) { cin >> n; for (int i = 1; i <= n; ++i) { for (int j = 0; j < 3; ++j) { cin >> a[i][j]; p[j][i] = make_pair(a[i][j], i); } } for (int i = 0; i < 3; ++i) { sort(p[i] + 1, p[i] + n + 1, greater <pair <int, int>> ()); } int pa = 1, pb = 1, pc = 1; while(pa <= n && pb <= n && pc <= n) { int x = p[0][pa].se, y = p[1][pb].se, z = p[2][pc].se; if(a[x][1] >= a[y][1] || a[x][2] >= a[z][2]) { pa++; continue; } if(a[y][0] >= a[x][0] || a[y][2] >= a[z][2]) { pb++; continue; } if(a[z][0] >= a[x][0] || a[z][1] >= a[y][1]) { pc++; continue; } cout << p[0][pa].fi + p[1][pb].fi + p[2][pc].fi << '\n'; return; } cout << "-1\n"; } signed main() { #ifdef LOCAL freopen("TASK.inp", "r", stdin); freopen("TASK.out", "w", stdout); #endif auto start_time = chrono::steady_clock::now(); cin.tie(0), cout.tie(0) -> sync_with_stdio(0); you_make_it(); auto end_time = chrono::steady_clock::now(); cerr << "\nExecution time : " << chrono::duration_cast <chrono::milliseconds> (end_time - start_time).count() << "[ms]" << endl; return (0 ^ 0); } // Dream it. Wish it. Do it.
#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...