# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1016461 | 2024-07-08T06:09:53 Z | pavement | 가장 긴 여행 (IOI23_longesttrip) | C++17 | 16 ms | 600 KB |
#include "longesttrip.h" #include <bits/stdc++.h> using namespace std; #define pb push_back vector<int> longest_trip(int N, int D) { vector<int> ret; if (D == 3) { ret.resize(N); iota(ret.begin(), ret.end(), 0); } else if (D == 2) { deque<int> dq; int st = -1; dq.pb(0); if (are_connected({0}, {1})) { dq.pb(1); st = 2; } else { dq.pb(2); dq.pb(1); st = 3; } for (int i = st; i < N; i++) { if (are_connected({i}, {dq.back()})) { dq.pb(i); } else { dq.push_front(i); } } ret = vector<int>(dq.begin(), dq.end()); } else { deque<int> ch1, ch2; ch1.pb(0); int i = 1; for (; i < N; i++) { vector<int> tmp; if (ch1.size() == 1) { tmp.pb(ch1.front()); } else { tmp.pb(ch1.front()); tmp.pb(ch1.back()); } if (are_connected(tmp, {i})) { if (ch1.size() != 1 && are_connected({ch1.front()}, {i})) { ch1.push_front(i); } else { ch1.pb(i); } } else { ch2.pb(i); break; } } for (i++; i < N; i++) { if (are_connected({ch1.back()}, {i})) { ch1.pb(i); if (ch2.size() == 1) { if (are_connected({ch2.back()}, {i})) { ch1.pb(ch2.back()); ch2.pop_back(); } } else if (!ch2.empty()) { if (are_connected({ch2.front(), ch2.back()}, {i})) { if (are_connected({ch2.back()}, {i})) { while (!ch2.empty()) { ch1.pb(ch2.back()); ch2.pop_back(); } } else { while (!ch2.empty()) { ch1.pb(ch2.front()); ch2.pop_front(); } } } } } else { ch2.pb(i); if (are_connected({ch1.front()}, {i})) { while (!ch2.empty()) { ch1.push_front(ch2.back()); ch2.pop_back(); } } } } vector<int> vec1(ch1.begin(), ch1.end()), vec2(ch2.begin(), ch2.end()); if (!vec1.empty() && !vec2.empty() && are_connected(vec1, vec2)) { int lo = 0, hi = (int)vec1.size() - 1, idx1 = 0; while (lo < hi) { int mid = (lo + hi) / 2; if (are_connected(vector<int>(vec1.begin() + lo, vec1.begin() + mid + 1), vec2)) { idx1 = mid; hi = mid; } else { idx1 = mid + 1; lo = mid + 1; } } lo = 0, hi = (int)vec2.size() - 1; int idx2 = 0; while (lo < hi) { int mid = (lo + hi) / 2; if (are_connected(vector<int>(vec2.begin() + lo, vec2.begin() + mid + 1), {vec1[idx1]})) { idx2 = mid; hi = mid; } else { idx2 = mid + 1; lo = mid + 1; } } // vec1[idx1] and vec2[idx2] are connected for (int i = (idx1 + 1) % (int)vec1.size(); i != idx1; i = (i + 1) % (int)vec1.size()) { ret.pb(vec1[i]); } ret.pb(vec1[idx1]); for (int i = idx2; (int)ret.size() != N; i = (i + 1) % (int)vec2.size()) { ret.pb(vec2[i]); } } else { if (vec1.size() > vec2.size()) { ret = vec1; } else { ret = vec2; } } } return ret; }
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 2 ms | 344 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 344 KB | Output is correct |
2 | Correct | 1 ms | 344 KB | Output is correct |
3 | Correct | 1 ms | 344 KB | Output is correct |
4 | Correct | 0 ms | 344 KB | Output is correct |
5 | Correct | 0 ms | 344 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 344 KB | Output is correct |
2 | Correct | 5 ms | 344 KB | Output is correct |
3 | Correct | 6 ms | 344 KB | Output is correct |
4 | Correct | 7 ms | 344 KB | Output is correct |
5 | Correct | 5 ms | 344 KB | Output is correct |
6 | Correct | 6 ms | 344 KB | Output is correct |
7 | Correct | 5 ms | 344 KB | Output is correct |
8 | Correct | 6 ms | 344 KB | Output is correct |
9 | Correct | 5 ms | 344 KB | Output is correct |
10 | Correct | 6 ms | 344 KB | Output is correct |
11 | Correct | 5 ms | 596 KB | Output is correct |
12 | Correct | 5 ms | 344 KB | Output is correct |
13 | Correct | 7 ms | 436 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 8 ms | 344 KB | Output is correct |
2 | Correct | 9 ms | 344 KB | Output is correct |
3 | Correct | 8 ms | 344 KB | Output is correct |
4 | Correct | 10 ms | 344 KB | Output is correct |
5 | Correct | 10 ms | 344 KB | Output is correct |
6 | Correct | 8 ms | 344 KB | Output is correct |
7 | Correct | 12 ms | 344 KB | Output is correct |
8 | Correct | 10 ms | 344 KB | Output is correct |
9 | Correct | 11 ms | 344 KB | Output is correct |
10 | Correct | 16 ms | 600 KB | Output is correct |
11 | Correct | 9 ms | 344 KB | Output is correct |
12 | Correct | 12 ms | 344 KB | Output is correct |
13 | Correct | 13 ms | 436 KB | Output is correct |
14 | Correct | 11 ms | 344 KB | Output is correct |
15 | Correct | 8 ms | 344 KB | Output is correct |
16 | Correct | 8 ms | 344 KB | Output is correct |
17 | Correct | 9 ms | 344 KB | Output is correct |
18 | Correct | 11 ms | 344 KB | Output is correct |
19 | Correct | 8 ms | 344 KB | Output is correct |
20 | Correct | 7 ms | 344 KB | Output is correct |
21 | Correct | 9 ms | 344 KB | Output is correct |
22 | Correct | 5 ms | 344 KB | Output is correct |
23 | Correct | 7 ms | 344 KB | Output is correct |
24 | Correct | 5 ms | 344 KB | Output is correct |
25 | Correct | 8 ms | 344 KB | Output is correct |
26 | Correct | 7 ms | 344 KB | Output is correct |
27 | Correct | 11 ms | 344 KB | Output is correct |
28 | Correct | 8 ms | 344 KB | Output is correct |
29 | Correct | 8 ms | 344 KB | Output is correct |
30 | Correct | 9 ms | 340 KB | Output is correct |
31 | Correct | 12 ms | 344 KB | Output is correct |
32 | Correct | 6 ms | 344 KB | Output is correct |
33 | Correct | 11 ms | 344 KB | Output is correct |
34 | Correct | 12 ms | 344 KB | Output is correct |
35 | Correct | 9 ms | 340 KB | Output is correct |
36 | Correct | 13 ms | 432 KB | Output is correct |
37 | Correct | 12 ms | 344 KB | Output is correct |
38 | Correct | 13 ms | 344 KB | Output is correct |
39 | Correct | 12 ms | 344 KB | Output is correct |
40 | Correct | 10 ms | 344 KB | Output is correct |
41 | Correct | 12 ms | 344 KB | Output is correct |
42 | Correct | 8 ms | 344 KB | Output is correct |
43 | Correct | 10 ms | 344 KB | Output is correct |
44 | Correct | 9 ms | 344 KB | Output is correct |
45 | Correct | 8 ms | 344 KB | Output is correct |
46 | Correct | 7 ms | 344 KB | Output is correct |
47 | Correct | 8 ms | 344 KB | Output is correct |
48 | Correct | 11 ms | 344 KB | Output is correct |
49 | Correct | 7 ms | 344 KB | Output is correct |
50 | Correct | 9 ms | 344 KB | Output is correct |
51 | Correct | 11 ms | 344 KB | Output is correct |
52 | Correct | 8 ms | 344 KB | Output is correct |
53 | Correct | 10 ms | 344 KB | Output is correct |
54 | Correct | 7 ms | 344 KB | Output is correct |
55 | Correct | 12 ms | 344 KB | Output is correct |
56 | Correct | 7 ms | 344 KB | Output is correct |
57 | Correct | 13 ms | 344 KB | Output is correct |
58 | Correct | 9 ms | 344 KB | Output is correct |
59 | Correct | 13 ms | 344 KB | Output is correct |
60 | Correct | 12 ms | 600 KB | Output is correct |
61 | Correct | 13 ms | 428 KB | Output is correct |
62 | Correct | 10 ms | 592 KB | Output is correct |
63 | Correct | 12 ms | 600 KB | Output is correct |
64 | Correct | 9 ms | 344 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 344 KB | Output is correct |
2 | Correct | 13 ms | 344 KB | Output is correct |
3 | Correct | 10 ms | 344 KB | Output is correct |
4 | Correct | 14 ms | 344 KB | Output is correct |
5 | Partially correct | 10 ms | 344 KB | Output is partially correct |
6 | Correct | 9 ms | 344 KB | Output is correct |
7 | Correct | 8 ms | 344 KB | Output is correct |
8 | Correct | 8 ms | 344 KB | Output is correct |
9 | Correct | 8 ms | 344 KB | Output is correct |
10 | Partially correct | 10 ms | 344 KB | Output is partially correct |
11 | Partially correct | 9 ms | 344 KB | Output is partially correct |
12 | Partially correct | 8 ms | 344 KB | Output is partially correct |
13 | Partially correct | 12 ms | 340 KB | Output is partially correct |
14 | Correct | 9 ms | 344 KB | Output is correct |
15 | Correct | 11 ms | 344 KB | Output is correct |
16 | Correct | 8 ms | 344 KB | Output is correct |
17 | Correct | 8 ms | 344 KB | Output is correct |
18 | Correct | 7 ms | 344 KB | Output is correct |
19 | Correct | 7 ms | 344 KB | Output is correct |
20 | Correct | 4 ms | 344 KB | Output is correct |
21 | Correct | 8 ms | 344 KB | Output is correct |
22 | Correct | 5 ms | 344 KB | Output is correct |
23 | Correct | 9 ms | 344 KB | Output is correct |
24 | Correct | 7 ms | 344 KB | Output is correct |
25 | Correct | 9 ms | 344 KB | Output is correct |
26 | Correct | 10 ms | 344 KB | Output is correct |
27 | Correct | 10 ms | 344 KB | Output is correct |
28 | Correct | 12 ms | 344 KB | Output is correct |
29 | Correct | 13 ms | 344 KB | Output is correct |
30 | Correct | 12 ms | 344 KB | Output is correct |
31 | Correct | 10 ms | 344 KB | Output is correct |
32 | Correct | 7 ms | 344 KB | Output is correct |
33 | Correct | 9 ms | 344 KB | Output is correct |
34 | Correct | 11 ms | 344 KB | Output is correct |
35 | Correct | 9 ms | 344 KB | Output is correct |
36 | Correct | 11 ms | 344 KB | Output is correct |
37 | Correct | 10 ms | 344 KB | Output is correct |
38 | Correct | 10 ms | 344 KB | Output is correct |
39 | Correct | 10 ms | 344 KB | Output is correct |
40 | Correct | 10 ms | 344 KB | Output is correct |
41 | Correct | 8 ms | 344 KB | Output is correct |
42 | Correct | 10 ms | 344 KB | Output is correct |
43 | Partially correct | 6 ms | 344 KB | Output is partially correct |
44 | Correct | 6 ms | 600 KB | Output is correct |
45 | Partially correct | 8 ms | 344 KB | Output is partially correct |
46 | Partially correct | 9 ms | 344 KB | Output is partially correct |
47 | Partially correct | 10 ms | 344 KB | Output is partially correct |
48 | Partially correct | 8 ms | 344 KB | Output is partially correct |
49 | Partially correct | 12 ms | 344 KB | Output is partially correct |
50 | Partially correct | 11 ms | 344 KB | Output is partially correct |
51 | Partially correct | 10 ms | 344 KB | Output is partially correct |
52 | Partially correct | 10 ms | 436 KB | Output is partially correct |
53 | Partially correct | 7 ms | 344 KB | Output is partially correct |
54 | Partially correct | 6 ms | 600 KB | Output is partially correct |
55 | Partially correct | 10 ms | 344 KB | Output is partially correct |
56 | Partially correct | 8 ms | 344 KB | Output is partially correct |
57 | Partially correct | 10 ms | 344 KB | Output is partially correct |
58 | Partially correct | 14 ms | 344 KB | Output is partially correct |
59 | Partially correct | 8 ms | 344 KB | Output is partially correct |
60 | Partially correct | 11 ms | 344 KB | Output is partially correct |
61 | Partially correct | 10 ms | 344 KB | Output is partially correct |
62 | Partially correct | 13 ms | 344 KB | Output is partially correct |
63 | Partially correct | 11 ms | 344 KB | Output is partially correct |
64 | Partially correct | 15 ms | 600 KB | Output is partially correct |
65 | Partially correct | 8 ms | 596 KB | Output is partially correct |
66 | Partially correct | 11 ms | 344 KB | Output is partially correct |
67 | Partially correct | 10 ms | 600 KB | Output is partially correct |
68 | Partially correct | 9 ms | 344 KB | Output is partially correct |
69 | Partially correct | 13 ms | 344 KB | Output is partially correct |
70 | Partially correct | 7 ms | 344 KB | Output is partially correct |
71 | Partially correct | 13 ms | 344 KB | Output is partially correct |
72 | Partially correct | 11 ms | 600 KB | Output is partially correct |
73 | Partially correct | 10 ms | 344 KB | Output is partially correct |
74 | Partially correct | 14 ms | 344 KB | Output is partially correct |
75 | Partially correct | 10 ms | 344 KB | Output is partially correct |
76 | Partially correct | 9 ms | 344 KB | Output is partially correct |
77 | Partially correct | 10 ms | 344 KB | Output is partially correct |
78 | Partially correct | 10 ms | 344 KB | Output is partially correct |
79 | Partially correct | 13 ms | 344 KB | Output is partially correct |
80 | Partially correct | 11 ms | 344 KB | Output is partially correct |
81 | Partially correct | 12 ms | 344 KB | Output is partially correct |
82 | Partially correct | 7 ms | 344 KB | Output is partially correct |