제출 #576745

#제출 시각아이디문제언어결과실행 시간메모리
576745Soumya1Team Contest (JOI22_team)C++17
0 / 100
98 ms16204 KiB
#include <bits/stdc++.h> #ifdef __LOCAL__ #include <debug_local.h> #endif using namespace std; void testCase() { int n; cin >> n; vector<tuple<int, int, int>> a(n); for (auto &[x, y, z] : a) cin >> x >> y >> z; sort(a.begin(), a.end()); set<pair<int, int>> s1, s2; for (int i = 0; i < n; i++) { auto [x, y, z] = a[i]; s1.insert({y, i}); s2.insert({z, i}); } int ans = -1; vector<bool> deleted(n); while (!s1.empty() && (*s1.rbegin()).second == (*s2.rbegin()).second) { deleted[(*s1.rbegin()).second] = true; s1.erase(prev(s1.end())); s2.erase(prev(s2.end())); } for (int i = n - 1; i >= 0; i--) { auto [x, y, z] = a[i]; if (deleted[i]) continue; if (!s1.empty() && (*s1.rbegin()).second != i && (*s2.rbegin()).second != i) { ans = max(ans, x + (*s1.rbegin()).first + (*s2.rbegin()).first); } s1.erase({y, i}); s2.erase({z, i}); deleted[i] = true; while (!s1.empty() && (*s1.rbegin()).second == (*s2.rbegin()).second) { deleted[(*s1.rbegin()).second] = true; s1.erase(prev(s1.end())); s2.erase(prev(s2.end())); } } cout << ans << "\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); testCase(); }
#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...