# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
842336 | 2023-09-02T18:41:01 Z | SHZhang | Longest Trip (IOI23_longesttrip) | C++17 | 13 ms | 940 KB |
#include "longesttrip.h" #include <cstdio> #include <vector> #include <algorithm> #include <utility> using namespace std; vector<int> longest_trip(int N, int D) { vector<int> c1, c2; c1.push_back(0); for (int i = 1; i < N; i++) { if (c2.empty()) { if (are_connected({c1.back()}, {i})) { c1.push_back(i); } else { c2.push_back(i); } } else { bool conn1 = are_connected({c1.back()}, {i}); bool conn2 = are_connected({c2.back()}, {i}); if (conn1 && conn2) { reverse(c2.begin(), c2.end()); c1.push_back(i); for (int i = 0; i < c2.size(); i++) { c1.push_back(c2[i]); } c2.clear(); } else if (conn1) { c1.push_back(i); } else { c2.push_back(i); } } } if (c2.empty()) { return c1; } if (!are_connected(c1, c2)) { if (c1.size() > c2.size()) { return c1; } else { return c2; } } if (c1.size() >= 2 && !are_connected({c1.front()}, {c1.back()})) { if (are_connected({c1.front()}, {c2.front()})) { reverse(c1.begin(), c1.end()); } for (int i = 0; i < c2.size(); i++) { c1.push_back(c2[i]); } return c1; } if (c2.size() >= 2 && !are_connected({c2.front()}, {c2.back()})) { if (are_connected({c1.back()}, {c2.back()})) { reverse(c2.begin(), c2.end()); } for (int i = 0; i < c2.size(); i++) { c1.push_back(c2[i]); } return c1; } int l1 = 1; int r1 = c1.size(); while (l1 < r1) { int mid = (l1 + r1) / 2; vector<int> newc1; for (int i = 0; i < mid; i++) newc1.push_back(c1[i]); if (are_connected(newc1, c2)) { r1 = mid; } else { l1 = mid + 1; } } vector<int> c1pref; for (int i = 0; i < l1; i++) c1pref.push_back(c1[i]); int l2 = 1; int r2 = c2.size(); while (l2 < r2) { int mid = (l2 + r2) / 2; vector<int> newc2; for (int i = 0; i < mid; i++) newc2.push_back(c2[i]); if (are_connected(c1pref, newc2)) { r2 = mid; } else { l2 = mid + 1; } } vector<int> ans; for (int i = l1; i < c1.size(); i++) ans.push_back(c1[i]); for (int i = 0; i < l1; i++) ans.push_back(c1[i]); for (int i = l2 - 1; i < c2.size(); i++) ans.push_back(c2[i]); for (int i = 0; i < l2 - 1; i++) ans.push_back(c2[i]); return ans; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 1 ms | 344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 344 KB | Output is correct |
2 | Correct | 4 ms | 344 KB | Output is correct |
3 | Correct | 4 ms | 344 KB | Output is correct |
4 | Correct | 4 ms | 344 KB | Output is correct |
5 | Correct | 5 ms | 608 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 596 KB | Output is correct |
2 | Correct | 5 ms | 344 KB | Output is correct |
3 | Correct | 4 ms | 344 KB | Output is correct |
4 | Correct | 4 ms | 344 KB | Output is correct |
5 | Correct | 4 ms | 344 KB | Output is correct |
6 | Correct | 7 ms | 344 KB | Output is correct |
7 | Correct | 5 ms | 344 KB | Output is correct |
8 | Correct | 4 ms | 344 KB | Output is correct |
9 | Correct | 4 ms | 344 KB | Output is correct |
10 | Correct | 5 ms | 608 KB | Output is correct |
11 | Correct | 4 ms | 600 KB | Output is correct |
12 | Correct | 5 ms | 344 KB | Output is correct |
13 | Correct | 4 ms | 344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 344 KB | Output is correct |
2 | Correct | 5 ms | 344 KB | Output is correct |
3 | Correct | 4 ms | 344 KB | Output is correct |
4 | Correct | 4 ms | 344 KB | Output is correct |
5 | Correct | 4 ms | 344 KB | Output is correct |
6 | Correct | 7 ms | 344 KB | Output is correct |
7 | Correct | 5 ms | 344 KB | Output is correct |
8 | Correct | 5 ms | 344 KB | Output is correct |
9 | Correct | 4 ms | 344 KB | Output is correct |
10 | Correct | 5 ms | 344 KB | Output is correct |
11 | Correct | 4 ms | 344 KB | Output is correct |
12 | Correct | 4 ms | 600 KB | Output is correct |
13 | Correct | 4 ms | 344 KB | Output is correct |
14 | Correct | 7 ms | 344 KB | Output is correct |
15 | Correct | 8 ms | 344 KB | Output is correct |
16 | Correct | 7 ms | 344 KB | Output is correct |
17 | Correct | 6 ms | 344 KB | Output is correct |
18 | Correct | 6 ms | 344 KB | Output is correct |
19 | Correct | 6 ms | 600 KB | Output is correct |
20 | Correct | 6 ms | 600 KB | Output is correct |
21 | Correct | 4 ms | 344 KB | Output is correct |
22 | Correct | 4 ms | 344 KB | Output is correct |
23 | Correct | 6 ms | 600 KB | Output is correct |
24 | Correct | 5 ms | 344 KB | Output is correct |
25 | Correct | 7 ms | 344 KB | Output is correct |
26 | Correct | 8 ms | 344 KB | Output is correct |
27 | Correct | 9 ms | 344 KB | Output is correct |
28 | Correct | 7 ms | 344 KB | Output is correct |
29 | Correct | 8 ms | 344 KB | Output is correct |
30 | Correct | 7 ms | 344 KB | Output is correct |
31 | Correct | 8 ms | 344 KB | Output is correct |
32 | Correct | 8 ms | 344 KB | Output is correct |
33 | Correct | 7 ms | 344 KB | Output is correct |
34 | Correct | 7 ms | 344 KB | Output is correct |
35 | Correct | 9 ms | 344 KB | Output is correct |
36 | Correct | 8 ms | 596 KB | Output is correct |
37 | Correct | 10 ms | 600 KB | Output is correct |
38 | Correct | 9 ms | 344 KB | Output is correct |
39 | Correct | 9 ms | 600 KB | Output is correct |
40 | Correct | 9 ms | 344 KB | Output is correct |
41 | Correct | 10 ms | 600 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 | 600 KB | Output is correct |
45 | Correct | 7 ms | 344 KB | Output is correct |
46 | Correct | 8 ms | 344 KB | Output is correct |
47 | Correct | 9 ms | 344 KB | Output is correct |
48 | Correct | 8 ms | 344 KB | Output is correct |
49 | Correct | 8 ms | 344 KB | Output is correct |
50 | Correct | 6 ms | 420 KB | Output is correct |
51 | Correct | 8 ms | 420 KB | Output is correct |
52 | Correct | 9 ms | 344 KB | Output is correct |
53 | Correct | 6 ms | 592 KB | Output is correct |
54 | Correct | 8 ms | 868 KB | Output is correct |
55 | Correct | 8 ms | 600 KB | Output is correct |
56 | Correct | 7 ms | 856 KB | Output is correct |
57 | Correct | 10 ms | 424 KB | Output is correct |
58 | Correct | 11 ms | 608 KB | Output is correct |
59 | Correct | 10 ms | 608 KB | Output is correct |
60 | Correct | 11 ms | 940 KB | Output is correct |
61 | Correct | 9 ms | 424 KB | Output is correct |
62 | Correct | 10 ms | 600 KB | Output is correct |
63 | Correct | 10 ms | 684 KB | Output is correct |
64 | Correct | 9 ms | 684 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 596 KB | Output is correct |
2 | Correct | 4 ms | 344 KB | Output is correct |
3 | Correct | 4 ms | 344 KB | Output is correct |
4 | Correct | 4 ms | 344 KB | Output is correct |
5 | Correct | 4 ms | 344 KB | Output is correct |
6 | Correct | 7 ms | 596 KB | Output is correct |
7 | Correct | 5 ms | 340 KB | Output is correct |
8 | Correct | 4 ms | 344 KB | Output is correct |
9 | Correct | 4 ms | 344 KB | Output is correct |
10 | Correct | 6 ms | 608 KB | Output is correct |
11 | Correct | 6 ms | 344 KB | Output is correct |
12 | Correct | 5 ms | 344 KB | Output is correct |
13 | Correct | 5 ms | 344 KB | Output is correct |
14 | Correct | 7 ms | 344 KB | Output is correct |
15 | Correct | 8 ms | 344 KB | Output is correct |
16 | Correct | 12 ms | 344 KB | Output is correct |
17 | Correct | 6 ms | 344 KB | Output is correct |
18 | Correct | 6 ms | 344 KB | Output is correct |
19 | Correct | 5 ms | 344 KB | Output is correct |
20 | Correct | 5 ms | 344 KB | Output is correct |
21 | Correct | 7 ms | 344 KB | Output is correct |
22 | Correct | 8 ms | 344 KB | Output is correct |
23 | Correct | 8 ms | 344 KB | Output is correct |
24 | Correct | 9 ms | 344 KB | Output is correct |
25 | Correct | 7 ms | 344 KB | Output is correct |
26 | Correct | 6 ms | 344 KB | Output is correct |
27 | Correct | 8 ms | 344 KB | Output is correct |
28 | Correct | 8 ms | 344 KB | Output is correct |
29 | Correct | 7 ms | 344 KB | Output is correct |
30 | Correct | 6 ms | 344 KB | Output is correct |
31 | Correct | 9 ms | 344 KB | Output is correct |
32 | Correct | 8 ms | 344 KB | Output is correct |
33 | Correct | 10 ms | 344 KB | Output is correct |
34 | Correct | 11 ms | 344 KB | Output is correct |
35 | Correct | 7 ms | 344 KB | Output is correct |
36 | Correct | 8 ms | 344 KB | Output is correct |
37 | Correct | 8 ms | 756 KB | Output is correct |
38 | Correct | 9 ms | 432 KB | Output is correct |
39 | Correct | 9 ms | 344 KB | Output is correct |
40 | Correct | 6 ms | 344 KB | Output is correct |
41 | Correct | 9 ms | 600 KB | Output is correct |
42 | Correct | 8 ms | 596 KB | Output is correct |
43 | Correct | 5 ms | 600 KB | Output is correct |
44 | Correct | 5 ms | 340 KB | Output is correct |
45 | Correct | 6 ms | 344 KB | Output is correct |
46 | Correct | 5 ms | 344 KB | Output is correct |
47 | Partially correct | 7 ms | 344 KB | Output is partially correct |
48 | Partially correct | 9 ms | 344 KB | Output is partially correct |
49 | Partially correct | 8 ms | 600 KB | Output is partially correct |
50 | Partially correct | 9 ms | 600 KB | Output is partially correct |
51 | Partially correct | 8 ms | 344 KB | Output is partially correct |
52 | Partially correct | 8 ms | 608 KB | Output is partially correct |
53 | Partially correct | 11 ms | 600 KB | Output is partially correct |
54 | Partially correct | 8 ms | 600 KB | Output is partially correct |
55 | Partially correct | 8 ms | 600 KB | Output is partially correct |
56 | Partially correct | 9 ms | 344 KB | Output is partially correct |
57 | Partially correct | 11 ms | 600 KB | Output is partially correct |
58 | Partially correct | 9 ms | 344 KB | Output is partially correct |
59 | Partially correct | 9 ms | 600 KB | Output is partially correct |
60 | Partially correct | 13 ms | 596 KB | Output is partially correct |
61 | Partially correct | 8 ms | 344 KB | Output is partially correct |
62 | Correct | 6 ms | 436 KB | Output is correct |
63 | Partially correct | 8 ms | 856 KB | Output is partially correct |
64 | Partially correct | 11 ms | 684 KB | Output is partially correct |
65 | Partially correct | 10 ms | 604 KB | Output is partially correct |
66 | Partially correct | 9 ms | 608 KB | Output is partially correct |
67 | Partially correct | 10 ms | 432 KB | Output is partially correct |
68 | Partially correct | 8 ms | 416 KB | Output is partially correct |
69 | Partially correct | 9 ms | 604 KB | Output is partially correct |
70 | Partially correct | 9 ms | 604 KB | Output is partially correct |
71 | Partially correct | 8 ms | 420 KB | Output is partially correct |
72 | Partially correct | 11 ms | 440 KB | Output is partially correct |
73 | Partially correct | 10 ms | 608 KB | Output is partially correct |
74 | Partially correct | 9 ms | 604 KB | Output is partially correct |
75 | Partially correct | 9 ms | 600 KB | Output is partially correct |
76 | Partially correct | 9 ms | 424 KB | Output is partially correct |
77 | Partially correct | 9 ms | 604 KB | Output is partially correct |
78 | Partially correct | 10 ms | 864 KB | Output is partially correct |
79 | Partially correct | 10 ms | 420 KB | Output is partially correct |
80 | Partially correct | 9 ms | 428 KB | Output is partially correct |
81 | Partially correct | 9 ms | 600 KB | Output is partially correct |
82 | Partially correct | 10 ms | 856 KB | Output is partially correct |