Submission #557961

#TimeUsernameProblemLanguageResultExecution timeMemory
557961DanShadersTeam Contest (JOI22_team)C++17
0 / 100
72 ms5376 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; namespace x = __gnu_pbds; template <typename T> using ordered_set = x::tree<T, x::null_type, less<T>, x::rb_tree_tag, x::tree_order_statistics_node_update>; template <typename T> using normal_queue = priority_queue<T, vector<T>, greater<>>; #define all(x) begin(x), end(x) #define sz(x) ((int) (x).size()) #define x first #define y second using ll = long long; using ld = long double; const int N = 1.6e5; using P = array<int, 3>; P a[N]; signed main() { cin.tie(0)->sync_with_stdio(0); int n; cin >> n; for (int i = 0; i < n; ++i) { for (int j = 0; j < 3; ++j) { cin >> a[i][j]; } } sort(a, a + n); ll ans = -1; for (int i = 1; i < n - 1; ++i) { if (a[i][0] == a[i + 1][0]) { continue; } // [0; i] and [i + 1; n - 1] vector<P> f(a, a + i + 1), b(a, a + i + 1); sort(all(f), [](const P &x, const P &y) { return pair{x[1], x[2]} > pair{y[1], y[2]}; }); sort(all(b), [](const P &x, const P &y) { return pair{x[2], x[1]} > pair{y[2], y[1]}; }); int y = -1, z = -1; for (int j = 0; j <= i; ++j) { if (f[j] != b[j]) { y = f[j][1]; z = b[j][2]; break; } } // cout << i << " " << y << " " << z << endl; int x = -1; for (int j = n - 1; j > i; --j) { if (a[j][1] < y && a[j][2] < z) { x = a[j][0]; break; } } if (x != -1) { ans = max(ans, 0ll + x + y + z); } } cout << ans; }
#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...