Submission #861952

#TimeUsernameProblemLanguageResultExecution timeMemory
861952rog1gorTeam Contest (JOI22_team)C++14
37 / 100
79 ms24496 KiB
#include <bits/stdc++.h> using namespace std; #define MAXN 150000 vector<pair<int, int>> con(MAXN), impl(MAXN), luck(MAXN); vector<vector<int>> skills(MAXN); vector<bool> unwanted(MAXN); bool isAcceptable(int a, int b, int c){ if(unwanted.at(a)) return false; int score = 0; for(int i = 0; i < 3; ++i){ if(skills.at(a).at(i) >= max(skills.at(b).at(i), skills.at(c).at(i))) ++score; if(score > 1) return false; } return true; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; for(int i = 0; i < n; ++i){ cin >> con.at(i).first >> impl.at(i).first >> luck.at(i).first; con.at(i).second = i; impl.at(i).second = i; luck.at(i).second = i; skills.at(i) = {con.at(i).first, impl.at(i).first, luck.at(i).first}; } //cerr << "jestem1"; sort(con.rbegin(), con.rend()); sort(impl.rbegin(), impl.rend()); sort(luck.rbegin(), luck.rend()); //cerr << "jestem2"; int i = 0, j = 0, k = 0; bool good = true; while(i < n || j < n || k < n){ pair<int, int> conI = con.at(i); pair<int, int> implI = impl.at(j); pair<int, int> luckI = luck.at(k); good = true; if(!isAcceptable(conI.second, implI.second, luckI.second)){ unwanted.at(conI.second) = true; ++i; good = false; } if(!isAcceptable(implI.second, conI.second, luckI.second)){ unwanted.at(implI.second) = true; ++j; good = false; } if(!isAcceptable(luckI.second, implI.second, conI.second)){ unwanted.at(luckI.second) = true; ++k; good = false; } if(good){ cout << conI.first + implI.first + luckI.first; return 0; } } cout << -1; return 0; }
#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...