# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
880049 | 2023-11-28T16:10:57 Z | RaresFelix | 가장 긴 여행 (IOI23_longesttrip) | C++17 | 23 ms | 956 KB |
#include "longesttrip.h" #include <bits/stdc++.h> using namespace std; using vi = vector<int>; int gaseste_leg(int u, vi comp) { int l = 0; auto ok = [&](int len) { vi A; for(int i = 0; i < len; ++i) A.push_back(comp[i]); return are_connected(A, {u}); }; for(int i = 10; i >= 0; --i) { if(l + (1 << i) <= comp.size()) { if(!ok(l + (1 << i))) l += (1 << i); } } return comp[l]; } std::vector<int> longest_trip(int N, int D) { if(D >= 2) { deque<int> Re; Re.push_back(0); vi Took(N, 0); Took[0] = 1; if(are_connected({0}, {1})) { Re.push_back(1); Took[1] = 1; } else { Took[2] = 1; Re.push_back(2); } for(int i = 0; i < N; ++i) { if(!Took[i]) { if(are_connected({i}, {Re.front()})) { Re.push_front(i); } else Re.push_back(i); Took[i] = 1; } } vi R; for(auto it : Re) R.push_back(it); return R; } int nod_curent = 0; vi comp, R; for(int i = 1; i < N; ++i) { if(are_connected({nod_curent}, {i})) { R.push_back(nod_curent); nod_curent = i; if(!comp.empty() && are_connected(comp, {i})) { int it = gaseste_leg(i, comp); R.push_back(i); vi E; E.push_back(it); for(auto it2 : comp) if(it2 != it) E.push_back(it2); nod_curent = E.back(); E.pop_back(); for(auto it : E) R.push_back(it); comp.clear(); } } else { comp.push_back(i); } } if(comp.empty()) { R.push_back(nod_curent); return R; } if(R.empty()) { ///nod singur si componenta return comp; } //am ramas cu (R, nod_curent) si o componenta conexa for(auto it : comp) { if(are_connected({it}, {R[0]})) { vi Re; for(auto it2:comp) if(it2 != it) Re.push_back(it2); Re.push_back(it); for(auto it : R) Re.push_back(it); Re.push_back(nod_curent); return Re; } if(are_connected({it}, {nod_curent})) { vi Re; for(auto it : R) Re.push_back(it); Re.push_back(nod_curent); Re.push_back(it); for(auto it2 : R) if(it2 != it) Re.push_back(it2); return Re; } } vi Re; for(int i = 0; i < R.size(); ++i) { if(are_connected({R[i]}, comp)) { vi Re; for(int j = i + 1; j < R.size(); ++j) Re.push_back(R[j]); Re.push_back(nod_curent); for(int j = 0; j <= i; ++j) Re.push_back(R[j]); int it = gaseste_leg(R[i], comp); Re.push_back(it); for(auto it2 : comp) if(it2 != it) Re.push_back(it2); return Re; } } if(comp.size() >= 1 + R.size()) { return comp; } R.push_back(nod_curent); return R; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 2 ms | 600 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 344 KB | Output is correct |
2 | Correct | 5 ms | 344 KB | Output is correct |
3 | Correct | 5 ms | 344 KB | Output is correct |
4 | Correct | 5 ms | 344 KB | Output is correct |
5 | Correct | 4 ms | 344 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 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 | 600 KB | Output is correct |
5 | Correct | 5 ms | 344 KB | Output is correct |
6 | Correct | 7 ms | 344 KB | Output is correct |
7 | Correct | 7 ms | 344 KB | Output is correct |
8 | Correct | 4 ms | 344 KB | Output is correct |
9 | Correct | 5 ms | 344 KB | Output is correct |
10 | Correct | 4 ms | 344 KB | Output is correct |
11 | Correct | 4 ms | 344 KB | Output is correct |
12 | Correct | 4 ms | 344 KB | Output is correct |
13 | Correct | 4 ms | 344 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 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 | 420 KB | Output is correct |
5 | Correct | 5 ms | 600 KB | Output is correct |
6 | Correct | 6 ms | 344 KB | Output is correct |
7 | Correct | 6 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 | 5 ms | 600 KB | Output is correct |
12 | Correct | 5 ms | 344 KB | Output is correct |
13 | Correct | 5 ms | 344 KB | Output is correct |
14 | Correct | 12 ms | 344 KB | Output is correct |
15 | Correct | 13 ms | 344 KB | Output is correct |
16 | Correct | 8 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 | 344 KB | Output is correct |
20 | Correct | 7 ms | 344 KB | Output is correct |
21 | Correct | 5 ms | 344 KB | Output is correct |
22 | Correct | 5 ms | 344 KB | Output is correct |
23 | Correct | 6 ms | 344 KB | Output is correct |
24 | Correct | 5 ms | 600 KB | Output is correct |
25 | Correct | 8 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 | 15 ms | 344 KB | Output is correct |
29 | Correct | 9 ms | 344 KB | Output is correct |
30 | Correct | 12 ms | 344 KB | Output is correct |
31 | Correct | 14 ms | 436 KB | Output is correct |
32 | Correct | 15 ms | 344 KB | Output is correct |
33 | Correct | 11 ms | 344 KB | Output is correct |
34 | Correct | 11 ms | 344 KB | Output is correct |
35 | Correct | 12 ms | 600 KB | Output is correct |
36 | Correct | 11 ms | 344 KB | Output is correct |
37 | Correct | 14 ms | 436 KB | Output is correct |
38 | Correct | 15 ms | 600 KB | Output is correct |
39 | Correct | 20 ms | 600 KB | Output is correct |
40 | Correct | 21 ms | 440 KB | Output is correct |
41 | Correct | 22 ms | 344 KB | Output is correct |
42 | Correct | 21 ms | 688 KB | Output is correct |
43 | Correct | 22 ms | 696 KB | Output is correct |
44 | Correct | 22 ms | 444 KB | Output is correct |
45 | Correct | 7 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 | 6 ms | 344 KB | Output is correct |
49 | Correct | 7 ms | 344 KB | Output is correct |
50 | Correct | 6 ms | 344 KB | Output is correct |
51 | Correct | 9 ms | 440 KB | Output is correct |
52 | Correct | 10 ms | 436 KB | Output is correct |
53 | Correct | 6 ms | 344 KB | Output is correct |
54 | Correct | 8 ms | 600 KB | Output is correct |
55 | Correct | 9 ms | 852 KB | Output is correct |
56 | Correct | 8 ms | 600 KB | Output is correct |
57 | Correct | 8 ms | 604 KB | Output is correct |
58 | Correct | 11 ms | 460 KB | Output is correct |
59 | Correct | 11 ms | 448 KB | Output is correct |
60 | Correct | 15 ms | 672 KB | Output is correct |
61 | Correct | 14 ms | 440 KB | Output is correct |
62 | Correct | 10 ms | 952 KB | Output is correct |
63 | Correct | 15 ms | 688 KB | Output is correct |
64 | Correct | 11 ms | 944 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | 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 | 600 KB | Output is correct |
6 | Correct | 7 ms | 344 KB | Output is correct |
7 | Correct | 6 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 | 344 KB | Output is correct |
13 | Correct | 5 ms | 608 KB | Output is correct |
14 | Correct | 9 ms | 344 KB | Output is correct |
15 | Correct | 11 ms | 344 KB | Output is correct |
16 | Correct | 7 ms | 344 KB | Output is correct |
17 | Correct | 6 ms | 392 KB | Output is correct |
18 | Correct | 6 ms | 344 KB | Output is correct |
19 | Correct | 6 ms | 344 KB | Output is correct |
20 | Correct | 7 ms | 344 KB | Output is correct |
21 | Correct | 8 ms | 344 KB | Output is correct |
22 | Correct | 10 ms | 344 KB | Output is correct |
23 | Correct | 13 ms | 344 KB | Output is correct |
24 | Correct | 15 ms | 344 KB | Output is correct |
25 | Correct | 12 ms | 344 KB | Output is correct |
26 | Correct | 12 ms | 344 KB | Output is correct |
27 | Correct | 13 ms | 436 KB | Output is correct |
28 | Correct | 13 ms | 344 KB | Output is correct |
29 | Correct | 10 ms | 344 KB | Output is correct |
30 | Correct | 12 ms | 344 KB | Output is correct |
31 | Correct | 13 ms | 600 KB | Output is correct |
32 | Correct | 8 ms | 344 KB | Output is correct |
33 | Correct | 7 ms | 344 KB | Output is correct |
34 | Correct | 8 ms | 344 KB | Output is correct |
35 | Correct | 9 ms | 344 KB | Output is correct |
36 | Correct | 7 ms | 344 KB | Output is correct |
37 | Correct | 6 ms | 344 KB | Output is correct |
38 | Correct | 10 ms | 440 KB | Output is correct |
39 | Correct | 11 ms | 436 KB | Output is correct |
40 | Correct | 6 ms | 600 KB | Output is correct |
41 | Correct | 7 ms | 600 KB | Output is correct |
42 | Correct | 7 ms | 344 KB | Output is correct |
43 | Correct | 5 ms | 600 KB | Output is correct |
44 | Correct | 7 ms | 344 KB | Output is correct |
45 | Correct | 5 ms | 344 KB | Output is correct |
46 | Correct | 5 ms | 600 KB | Output is correct |
47 | Partially correct | 11 ms | 344 KB | Output is partially correct |
48 | Partially correct | 16 ms | 344 KB | Output is partially correct |
49 | Partially correct | 17 ms | 344 KB | Output is partially correct |
50 | Partially correct | 23 ms | 344 KB | Output is partially correct |
51 | Partially correct | 18 ms | 444 KB | Output is partially correct |
52 | Partially correct | 19 ms | 448 KB | Output is partially correct |
53 | Partially correct | 18 ms | 436 KB | Output is partially correct |
54 | Partially correct | 19 ms | 948 KB | Output is partially correct |
55 | Partially correct | 20 ms | 944 KB | Output is partially correct |
56 | Partially correct | 14 ms | 344 KB | Output is partially correct |
57 | Partially correct | 16 ms | 412 KB | Output is partially correct |
58 | Partially correct | 20 ms | 436 KB | Output is partially correct |
59 | Partially correct | 19 ms | 440 KB | Output is partially correct |
60 | Partially correct | 20 ms | 692 KB | Output is partially correct |
61 | Partially correct | 22 ms | 692 KB | Output is partially correct |
62 | Partially correct | 6 ms | 344 KB | Output is partially correct |
63 | Partially correct | 7 ms | 856 KB | Output is partially correct |
64 | Partially correct | 12 ms | 448 KB | Output is partially correct |
65 | Partially correct | 9 ms | 700 KB | Output is partially correct |
66 | Partially correct | 12 ms | 692 KB | Output is partially correct |
67 | Partially correct | 14 ms | 696 KB | Output is partially correct |
68 | Partially correct | 10 ms | 452 KB | Output is partially correct |
69 | Partially correct | 14 ms | 608 KB | Output is partially correct |
70 | Partially correct | 11 ms | 692 KB | Output is partially correct |
71 | Partially correct | 10 ms | 344 KB | Output is partially correct |
72 | Partially correct | 11 ms | 868 KB | Output is partially correct |
73 | Partially correct | 14 ms | 448 KB | Output is partially correct |
74 | Partially correct | 13 ms | 452 KB | Output is partially correct |
75 | Partially correct | 11 ms | 956 KB | Output is partially correct |
76 | Partially correct | 16 ms | 696 KB | Output is partially correct |
77 | Partially correct | 11 ms | 344 KB | Output is partially correct |
78 | Partially correct | 12 ms | 600 KB | Output is partially correct |
79 | Partially correct | 11 ms | 700 KB | Output is partially correct |
80 | Partially correct | 15 ms | 440 KB | Output is partially correct |
81 | Partially correct | 11 ms | 948 KB | Output is partially correct |
82 | Partially correct | 10 ms | 700 KB | Output is partially correct |