제출 #1240697

#제출 시각아이디문제언어결과실행 시간메모리
1240697SalihSahin가장 긴 여행 (IOI23_longesttrip)C++20
0 / 100
4 ms408 KiB
#include "bits/stdc++.h" #include "longesttrip.h" #define pb push_back using namespace std; vector<int> longest_trip(int N, int D){ if(D == 1){ vector<vector<int> > paths; for(int i = 0; i < N; i++){ paths.pb({i}); } while(paths.size() > 2){ vector<vector<int> > npaths; for(int i = 0; i + 2 < paths.size(); i += 3){ int a = paths[i][0], b = paths[i+1][0], c = paths[i+2][0]; bool c1 = are_connected({a}, {b}); bool c2 = are_connected({a}, {c}); bool c3 = are_connected({b}, {c}); if(c1){ vector<int> v = paths[i]; reverse(v.begin(), v.end()); for(auto itr: paths[i+1]) v.pb(itr); npaths.pb(v); } else if(c2){ vector<int> v = paths[i]; reverse(v.begin(), v.end()); for(auto itr: paths[i+2]) v.pb(itr); npaths.pb(v); } else if(c3){ vector<int> v = paths[i+1]; reverse(v.begin(), v.end()); for(auto itr: paths[i+2]) v.pb(itr); npaths.pb(v); } } if(paths.size() % 3 >= 1){ npaths.pb(paths.back()); } if(paths.size() % 3 >= 2){ npaths.pb(paths[paths.size()-2]); } paths = npaths; } if(paths.size() == 1) return paths[0]; if(paths[0].size() > paths[1].size()) return paths[0]; else return paths[1]; } return {}; }
#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...