제출 #844000

#제출 시각아이디문제언어결과실행 시간메모리
844000Gurban가장 긴 여행 (IOI23_longesttrip)C++17
40 / 100
9 ms600 KiB
#include "longesttrip.h" #include <bits/stdc++.h> using namespace std; const int maxn=260; vector<int>E[maxn]; vector<int> longest_trip(int N, int D) { vector<int>ans = {0}; if(D == 3){ for(int i = 1;i < N;i++) ans.push_back(i); return ans; } if(D == 2){ deque<int>dq; if(!are_connected({0},{1})){ dq = {0,2,1}; } else { if(are_connected({0},{2})){ dq = {2,0,1}; } else dq = {0,1,2}; } for(int i = 3;i < N;i++){ if(are_connected({dq.front()},{i})){ dq.push_front(i); } else dq.push_back(i); } ans.clear(); for(int i = 0;i < N;i++) ans.push_back(dq[i]); return ans; } vector<int>a = {0}; vector<int>b; for(int i = 1;i < N;i++){ if(are_connected({i},{a.back()})){ if(b.empty()) a.push_back(i); else { a.push_back(i); if(are_connected({i},{b.back()})){ for(int j = (int)b.size()-1;j >= 0;j--) a.push_back(b[j]); b.clear(); } } } else b.push_back(i); } if((int)a.size() < (int)b.size()) swap(a,b); return a; }
#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...