# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1132706 | SpyrosAliv | 가장 긴 여행 (IOI23_longesttrip) | C++20 | 0 ms | 0 KiB |
#include "longesttrip.h"
#include <bits/stdc++.h>
using namespace std;
//#define int long long
//bool are_connected(vector<int> a, vector<int> b);
vector<int> longest_trip(int n, int d) {
if (d == 3) {
vector<int> ans;
for (int i = 0; i < n; i++) ans.push_back(i);
return ans;
}
else if (d == 2) {
queue<int> ans;
ans.push(0);
for (int i = 0; i < n-1; i++) {
if (are_connected({i}, {i+1})) {
ans.push(i+1);
continue;
}
else {
if (i + 2 < n) {
ans.push(i+2);
ans.push(i+1);
}
else {
ans.pop();
ans.push(0);
ans.push(i+1);
}
i++;
}
}
vector<int> fin;
while (!ans.empty()) {
fin.push_back(ans.front());
ans.pop();
}
return ans;
}
return {};
}