Submission #653325

#TimeUsernameProblemLanguageResultExecution timeMemory
653325someoneTeam Contest (JOI22_team)C++14
0 / 100
1 ms340 KiB
#include <bits/stdc++.h> #define int long long using namespace std; struct Val { int val, id; }; const int N = 2e5 + 42, INF = 1e18 + 42; int n; bool b[N]; deque<Val> v[3]; signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; for(int i = 0; i < n; i++) for(int j = 0; j < 3; j++) { int val; cin >> val; v[j].push_back({val, i}); } for(int i = 0; i < 3; i++) sort(v[i].begin(), v[i].end(), [](Val a, Val b) { return a.val < b.val; }); while(!v[0].empty() && !v[1].empty() && !v[2].empty()) { if(v[0].back().id == v[1].back().id || v[0].back().id == v[2].back().id) b[v[0].back().id] = true; if(v[1].back().id == v[2].back().id) b[v[1].back().id] = true; if(v[0].back().id != v[1].back().id && v[0].back().id != v[2].back().id && v[1].back().id != v[2].back().id) break; for(int i = 0; i < 3; i++) while(!v[i].empty() && b[v[i].back().id]) v[i].pop_back(); } if(v[0].empty() || v[1].empty() || v[2].empty()) cout << -1; else cout << v[0].back().val + v[1].back().val + v[2].back().val; }
#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...