답안 #915674

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
915674 2024-01-24T14:10:22 Z gawr_gura 항공 노선도 (JOI18_airline) C++17
0 / 100
413 ms 35696 KB
#include <bits/stdc++.h>
using namespace std;

#include <cassert>
#include <cstdio>

#include "Alicelib.h"

void Alice(int N, int M, int A[], int B[]) {
        vector<pair<int, int>> edge;
        for (int i = 0; i < M; i++) edge.emplace_back(A[i], B[i]);
        for (int i = 0; i < N; i++) {
                for (int j = 0; j < 10; j++) {
                        if (i >> j & 1) edge.emplace_back(i, N + j);
                }
        }
        for (int i = 0; i < N + 10; i++) edge.emplace_back(N + 10, i);
        for (int i = 0; i < 10; i++) edge.emplace_back(N + 11, N + i);
        vector<int> x(10);

        for (int i = 0; i < 5; i++) x[i] = 4 - i;
        for (int i = 5; i < 10; i++) x[i] = 5 + 9 - i;

        for (int i = 9; i >= 0; i--) {
                for (int j = 9 - i; j < i; j++) {
                        edge.emplace_back(N + x[i], N + x[j]);
                }
        }

        InitG(N + 12, edge.size());
        int cnt = 0;
        for (auto&& [a, b] : edge) MakeG(cnt++, a, b);
}
#include <bits/stdc++.h>
using namespace std;

#include <cassert>
#include <cstdio>

#include "Boblib.h"

void Bob(int V, int U, int C[], int D[]) {
        int N = V - 12;
        vector<int> deg(V);
        for (int i = 0; i < U; i++) deg[C[i]]++, deg[D[i]]++;
        vector<vector<bool>> c(V, vector<bool>(V));
        for (int i = 0; i < U; i++) c[C[i]][D[i]] = c[D[i]][C[i]] = true;
        int key = max_element(deg.begin(), deg.end()) - deg.begin();
        int key2 = -1;
        for (int i = 0; i < V; i++) {
                if (i == key) continue;
                if (c[key][i] == 0) {
                        key2 = i;
                }
        }
        vector<int> spec;
        for (int i = 0; i < V; i++) {
                if (c[key2][i]) spec.emplace_back(i);
        }
        for (int i = 0; i < V; i++) deg[i] -= c[key][i];
        for (int i = 0; i < V; i++) deg[i] -= c[key2][i];
        assert(spec.size() == 10);
        vector<int> sdeg(V);
        for (int i : spec) {
                for (int j : spec) sdeg[i] += c[i][j], deg[i] -= c[i][j];
        }
        sort(spec.begin(), spec.end(), [&](int i, int j) {
                return sdeg[i] < sdeg[j];
        });

        assert(sdeg[spec[4]] == sdeg[spec[5]]);
        int cnt9 = 0;
        for (int i = 0; i < N; i++) cnt9 += i >> 9 & 1;
        assert(deg[spec[4]] == cnt9 || deg[spec[5]] == cnt9);
        if (deg[spec[4]] == cnt9) swap(spec[4], spec[5]);
        vector<int> x(10);
        for (int i = 0; i < 5; i++) x[i] = 4 - i;
        for (int i = 5; i < 10; i++) x[i] = 5 + 9 - i;

        vector<int> special(V);
        special[key] = 1;
        special[key2] = 1;
        for (int i : spec) special[i] = 1;
        vector<int> num(V);
        for (int i = 0; i < 10; i++) {
                for (int j = 0; j < V; j++) {
                        if (c[spec[i]][j]) num[j] |= 1 << x[i];
                }
        }
        vector<pair<int, int>> edge;
        for (int i = 0; i < V; i++) {
                for (int j = i + 1; j < V; j++) {
                        if (special[i] || special[j]) continue;
                        if (c[i][j]) edge.emplace_back(num[i], num[j]);
                }
        }
        InitMap(V - 12, edge.size());
        for (auto&& [a, b] : edge) MakeMap(a, b);
}
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 15616 KB Output is correct
2 Correct 3 ms 15620 KB Output is correct
3 Correct 3 ms 15620 KB Output is correct
4 Correct 3 ms 13568 KB Output is correct
5 Correct 3 ms 15620 KB Output is correct
6 Correct 3 ms 15620 KB Output is correct
7 Correct 3 ms 15620 KB Output is correct
8 Correct 3 ms 15636 KB Output is correct
9 Correct 3 ms 15616 KB Output is correct
10 Correct 3 ms 13568 KB Output is correct
11 Correct 3 ms 15620 KB Output is correct
12 Correct 3 ms 15620 KB Output is correct
13 Correct 4 ms 15628 KB Output is correct
14 Correct 3 ms 15620 KB Output is correct
15 Correct 3 ms 15616 KB Output is correct
16 Correct 3 ms 15616 KB Output is correct
17 Correct 3 ms 15620 KB Output is correct
18 Correct 3 ms 15620 KB Output is correct
19 Correct 3 ms 15620 KB Output is correct
20 Correct 3 ms 15620 KB Output is correct
21 Correct 3 ms 15616 KB Output is correct
22 Correct 4 ms 15620 KB Output is correct
23 Correct 3 ms 15616 KB Output is correct
24 Correct 3 ms 13572 KB Output is correct
25 Correct 3 ms 15616 KB Output is correct
26 Correct 3 ms 15620 KB Output is correct
27 Correct 3 ms 15620 KB Output is correct
28 Correct 3 ms 15620 KB Output is correct
29 Correct 3 ms 15616 KB Output is correct
30 Correct 3 ms 13568 KB Output is correct
31 Correct 3 ms 13568 KB Output is correct
32 Correct 3 ms 13568 KB Output is correct
33 Correct 2 ms 13824 KB Output is correct
34 Correct 3 ms 13572 KB Output is correct
35 Correct 3 ms 13572 KB Output is correct
36 Correct 3 ms 15616 KB Output is correct
37 Correct 3 ms 15620 KB Output is correct
38 Correct 3 ms 15620 KB Output is correct
39 Correct 3 ms 16120 KB Output is correct
40 Correct 3 ms 15616 KB Output is correct
41 Correct 3 ms 15864 KB Output is correct
42 Correct 3 ms 15620 KB Output is correct
43 Correct 4 ms 15616 KB Output is correct
44 Correct 3 ms 13572 KB Output is correct
45 Correct 3 ms 13568 KB Output is correct
46 Correct 3 ms 15620 KB Output is correct
47 Correct 3 ms 15616 KB Output is correct
48 Correct 4 ms 15616 KB Output is correct
49 Correct 3 ms 15620 KB Output is correct
50 Correct 3 ms 13572 KB Output is correct
51 Runtime error 7 ms 17924 KB Execution killed with signal 6
52 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 15616 KB Output is correct
2 Correct 3 ms 15620 KB Output is correct
3 Correct 3 ms 15620 KB Output is correct
4 Correct 3 ms 13568 KB Output is correct
5 Correct 3 ms 15620 KB Output is correct
6 Correct 3 ms 15620 KB Output is correct
7 Correct 3 ms 15620 KB Output is correct
8 Correct 3 ms 15636 KB Output is correct
9 Correct 3 ms 15616 KB Output is correct
10 Correct 3 ms 13568 KB Output is correct
11 Correct 3 ms 15620 KB Output is correct
12 Correct 3 ms 15620 KB Output is correct
13 Correct 4 ms 15628 KB Output is correct
14 Correct 3 ms 15620 KB Output is correct
15 Correct 3 ms 15616 KB Output is correct
16 Correct 3 ms 15616 KB Output is correct
17 Correct 3 ms 15620 KB Output is correct
18 Correct 3 ms 15620 KB Output is correct
19 Correct 3 ms 15620 KB Output is correct
20 Correct 3 ms 15620 KB Output is correct
21 Correct 3 ms 15616 KB Output is correct
22 Correct 4 ms 15620 KB Output is correct
23 Correct 3 ms 15616 KB Output is correct
24 Correct 3 ms 13572 KB Output is correct
25 Correct 3 ms 15616 KB Output is correct
26 Correct 3 ms 15620 KB Output is correct
27 Correct 3 ms 15620 KB Output is correct
28 Correct 3 ms 15620 KB Output is correct
29 Correct 3 ms 15616 KB Output is correct
30 Correct 3 ms 13568 KB Output is correct
31 Correct 3 ms 13568 KB Output is correct
32 Correct 3 ms 13568 KB Output is correct
33 Correct 2 ms 13824 KB Output is correct
34 Correct 3 ms 13572 KB Output is correct
35 Correct 3 ms 13572 KB Output is correct
36 Correct 3 ms 15616 KB Output is correct
37 Correct 3 ms 15620 KB Output is correct
38 Correct 3 ms 15620 KB Output is correct
39 Correct 3 ms 16120 KB Output is correct
40 Correct 3 ms 15616 KB Output is correct
41 Correct 3 ms 15864 KB Output is correct
42 Correct 3 ms 15620 KB Output is correct
43 Correct 4 ms 15616 KB Output is correct
44 Correct 3 ms 13572 KB Output is correct
45 Correct 3 ms 13568 KB Output is correct
46 Correct 3 ms 15620 KB Output is correct
47 Correct 3 ms 15616 KB Output is correct
48 Correct 4 ms 15616 KB Output is correct
49 Correct 3 ms 15620 KB Output is correct
50 Correct 3 ms 13572 KB Output is correct
51 Runtime error 7 ms 17924 KB Execution killed with signal 6
52 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 376 ms 35556 KB Output is correct : V - N = 12
2 Correct 347 ms 33664 KB Output is correct : V - N = 12
3 Correct 135 ms 18848 KB Output is correct : V - N = 12
4 Correct 8 ms 16116 KB Output is correct : V - N = 12
5 Correct 67 ms 17576 KB Output is correct : V - N = 12
6 Correct 257 ms 33692 KB Output is correct : V - N = 12
7 Correct 363 ms 34876 KB Output is correct : V - N = 12
8 Correct 341 ms 33612 KB Output is correct : V - N = 12
9 Correct 194 ms 20048 KB Output is correct : V - N = 12
10 Correct 26 ms 17172 KB Output is correct : V - N = 12
11 Correct 32 ms 16580 KB Output is correct : V - N = 12
12 Correct 242 ms 24008 KB Output is correct : V - N = 12
13 Correct 360 ms 34864 KB Output is correct : V - N = 12
14 Correct 365 ms 34532 KB Output is correct : V - N = 12
15 Correct 277 ms 27956 KB Output is correct : V - N = 12
16 Correct 53 ms 17076 KB Output is correct : V - N = 12
17 Correct 13 ms 16604 KB Output is correct : V - N = 12
18 Correct 154 ms 19096 KB Output is correct : V - N = 12
19 Correct 319 ms 33408 KB Output is correct : V - N = 12
20 Correct 390 ms 35168 KB Output is correct : V - N = 12
21 Correct 127 ms 17820 KB Output is correct : V - N = 12
22 Correct 80 ms 18108 KB Output is correct : V - N = 12
23 Correct 35 ms 16820 KB Output is correct : V - N = 12
24 Correct 5 ms 15616 KB Output is correct : V - N = 12
25 Correct 20 ms 16536 KB Output is correct : V - N = 12
26 Correct 64 ms 17664 KB Output is correct : V - N = 12
27 Correct 134 ms 17836 KB Output is correct : V - N = 12
28 Correct 96 ms 17576 KB Output is correct : V - N = 12
29 Correct 51 ms 17032 KB Output is correct : V - N = 12
30 Correct 7 ms 15820 KB Output is correct : V - N = 12
31 Correct 6 ms 13516 KB Output is correct : V - N = 12
32 Correct 8 ms 13564 KB Output is correct : V - N = 12
33 Correct 7 ms 13836 KB Output is correct : V - N = 12
34 Correct 6 ms 13572 KB Output is correct : V - N = 12
35 Correct 7 ms 13572 KB Output is correct : V - N = 12
36 Correct 384 ms 35696 KB Output is correct : V - N = 12
37 Correct 386 ms 34684 KB Output is correct : V - N = 12
38 Correct 387 ms 35656 KB Output is correct : V - N = 12
39 Correct 413 ms 34892 KB Output is correct : V - N = 12
40 Correct 406 ms 33696 KB Output is correct : V - N = 12
41 Correct 77 ms 17324 KB Output is correct : V - N = 12
42 Correct 48 ms 17352 KB Output is correct : V - N = 12
43 Correct 67 ms 17432 KB Output is correct : V - N = 12
44 Correct 8 ms 16056 KB Output is correct : V - N = 12
45 Correct 40 ms 16840 KB Output is correct : V - N = 12
46 Correct 138 ms 19088 KB Output is correct : V - N = 12
47 Correct 74 ms 17548 KB Output is correct : V - N = 12
48 Correct 188 ms 20200 KB Output is correct : V - N = 12
49 Correct 27 ms 16648 KB Output is correct : V - N = 12
50 Correct 14 ms 16340 KB Output is correct : V - N = 12
51 Correct 286 ms 32540 KB Output is correct : V - N = 12
52 Correct 8 ms 16328 KB Output is correct : V - N = 12
53 Correct 250 ms 34120 KB Output is correct : V - N = 12
54 Correct 325 ms 33532 KB Output is correct : V - N = 12
55 Correct 23 ms 16724 KB Output is correct : V - N = 12
56 Correct 214 ms 24564 KB Output is correct : V - N = 12
57 Correct 343 ms 35012 KB Output is correct : V - N = 12
58 Correct 56 ms 17268 KB Output is correct : V - N = 12
59 Correct 142 ms 19084 KB Output is correct : V - N = 12
60 Correct 380 ms 34672 KB Output is correct : V - N = 12
61 Correct 3 ms 15408 KB Output is correct : V - N = 12
62 Correct 3 ms 15620 KB Output is correct : V - N = 12
63 Correct 3 ms 15620 KB Output is correct : V - N = 12
64 Correct 3 ms 15868 KB Output is correct : V - N = 12
65 Correct 3 ms 15620 KB Output is correct : V - N = 12
66 Correct 3 ms 15620 KB Output is correct : V - N = 12
67 Correct 4 ms 15620 KB Output is correct : V - N = 12
68 Correct 4 ms 15620 KB Output is correct : V - N = 12
69 Correct 3 ms 15620 KB Output is correct : V - N = 12
70 Correct 3 ms 15620 KB Output is correct : V - N = 12
71 Correct 3 ms 15620 KB Output is correct : V - N = 12
72 Correct 4 ms 15620 KB Output is correct : V - N = 12
73 Correct 3 ms 15620 KB Output is correct : V - N = 12
74 Correct 3 ms 15616 KB Output is correct : V - N = 12
75 Correct 3 ms 15620 KB Output is correct : V - N = 12
76 Correct 3 ms 15620 KB Output is correct : V - N = 12
77 Correct 3 ms 15620 KB Output is correct : V - N = 12
78 Correct 3 ms 15620 KB Output is correct : V - N = 12
79 Correct 4 ms 15616 KB Output is correct : V - N = 12
80 Correct 3 ms 15616 KB Output is correct : V - N = 12
81 Correct 3 ms 15620 KB Output is correct : V - N = 12
82 Correct 3 ms 15620 KB Output is correct : V - N = 12
83 Correct 3 ms 15620 KB Output is correct : V - N = 12
84 Correct 3 ms 15616 KB Output is correct : V - N = 12
85 Correct 3 ms 15868 KB Output is correct : V - N = 12
86 Correct 3 ms 15616 KB Output is correct : V - N = 12
87 Correct 3 ms 15616 KB Output is correct : V - N = 12
88 Correct 3 ms 15616 KB Output is correct : V - N = 12
89 Correct 3 ms 15620 KB Output is correct : V - N = 12
90 Correct 3 ms 15620 KB Output is correct : V - N = 12
91 Correct 3 ms 13572 KB Output is correct : V - N = 12
92 Correct 3 ms 13572 KB Output is correct : V - N = 12
93 Correct 3 ms 13568 KB Output is correct : V - N = 12
94 Correct 3 ms 13572 KB Output is correct : V - N = 12
95 Correct 3 ms 13572 KB Output is correct : V - N = 12
96 Correct 3 ms 15616 KB Output is correct : V - N = 12
97 Correct 4 ms 15616 KB Output is correct : V - N = 12
98 Correct 3 ms 15620 KB Output is correct : V - N = 12
99 Correct 3 ms 15616 KB Output is correct : V - N = 12
100 Correct 3 ms 15616 KB Output is correct : V - N = 12
101 Correct 3 ms 15620 KB Output is correct : V - N = 12
102 Correct 3 ms 15620 KB Output is correct : V - N = 12
103 Correct 3 ms 15616 KB Output is correct : V - N = 12
104 Correct 3 ms 13580 KB Output is correct : V - N = 12
105 Correct 4 ms 15616 KB Output is correct : V - N = 12
106 Correct 3 ms 15616 KB Output is correct : V - N = 12
107 Correct 4 ms 15620 KB Output is correct : V - N = 12
108 Correct 4 ms 15620 KB Output is correct : V - N = 12
109 Correct 4 ms 15616 KB Output is correct : V - N = 12
110 Correct 3 ms 15616 KB Output is correct : V - N = 12
111 Correct 3 ms 15680 KB Output is correct : V - N = 12
112 Correct 4 ms 15616 KB Output is correct : V - N = 12
113 Correct 3 ms 15620 KB Output is correct : V - N = 12
114 Correct 3 ms 15620 KB Output is correct : V - N = 12
115 Correct 3 ms 15616 KB Output is correct : V - N = 12
116 Correct 3 ms 15616 KB Output is correct : V - N = 12
117 Correct 3 ms 15620 KB Output is correct : V - N = 12
118 Correct 3 ms 15620 KB Output is correct : V - N = 12
119 Correct 3 ms 15620 KB Output is correct : V - N = 12
120 Correct 3 ms 15620 KB Output is correct : V - N = 12
121 Correct 3 ms 15620 KB Output is correct : V - N = 12
122 Correct 3 ms 15620 KB Output is correct : V - N = 12
123 Correct 3 ms 15616 KB Output is correct : V - N = 12
124 Correct 3 ms 13568 KB Output is correct : V - N = 12
125 Correct 3 ms 15620 KB Output is correct : V - N = 12
126 Correct 3 ms 15532 KB Output is correct : V - N = 12
127 Correct 3 ms 15624 KB Output is correct : V - N = 12
128 Correct 3 ms 15612 KB Output is correct : V - N = 12
129 Correct 3 ms 15620 KB Output is correct : V - N = 12
130 Correct 3 ms 13572 KB Output is correct : V - N = 12
131 Correct 4 ms 15620 KB Output is correct : V - N = 12
132 Correct 3 ms 15620 KB Output is correct : V - N = 12
133 Correct 3 ms 15616 KB Output is correct : V - N = 12
134 Correct 3 ms 15616 KB Output is correct : V - N = 12
135 Correct 3 ms 15620 KB Output is correct : V - N = 12
136 Correct 3 ms 15624 KB Output is correct : V - N = 12
137 Correct 3 ms 15616 KB Output is correct : V - N = 12
138 Correct 3 ms 15620 KB Output is correct : V - N = 12
139 Correct 3 ms 15620 KB Output is correct : V - N = 12
140 Correct 3 ms 15616 KB Output is correct : V - N = 12
141 Correct 4 ms 15620 KB Output is correct : V - N = 12
142 Correct 3 ms 15620 KB Output is correct : V - N = 12
143 Correct 3 ms 15620 KB Output is correct : V - N = 12
144 Correct 3 ms 13572 KB Output is correct : V - N = 12
145 Correct 3 ms 15620 KB Output is correct : V - N = 12
146 Correct 3 ms 15620 KB Output is correct : V - N = 12
147 Correct 3 ms 15624 KB Output is correct : V - N = 12
148 Correct 3 ms 15620 KB Output is correct : V - N = 12
149 Correct 3 ms 16128 KB Output is correct : V - N = 12
150 Correct 3 ms 13572 KB Output is correct : V - N = 12
151 Correct 3 ms 13564 KB Output is correct : V - N = 12
152 Correct 3 ms 13572 KB Output is correct : V - N = 12
153 Correct 3 ms 13572 KB Output is correct : V - N = 12
154 Correct 3 ms 13572 KB Output is correct : V - N = 12
155 Correct 2 ms 13572 KB Output is correct : V - N = 12
156 Correct 3 ms 15968 KB Output is correct : V - N = 12
157 Correct 3 ms 15616 KB Output is correct : V - N = 12
158 Correct 3 ms 15616 KB Output is correct : V - N = 12
159 Correct 3 ms 15620 KB Output is correct : V - N = 12
160 Correct 3 ms 15580 KB Output is correct : V - N = 12
161 Correct 3 ms 15616 KB Output is correct : V - N = 12
162 Correct 3 ms 15616 KB Output is correct : V - N = 12
163 Correct 3 ms 15624 KB Output is correct : V - N = 12
164 Correct 3 ms 13572 KB Output is correct : V - N = 12
165 Correct 2 ms 13572 KB Output is correct : V - N = 12
166 Correct 3 ms 15620 KB Output is correct : V - N = 12
167 Correct 3 ms 15628 KB Output is correct : V - N = 12
168 Correct 3 ms 15620 KB Output is correct : V - N = 12
169 Correct 3 ms 15612 KB Output is correct : V - N = 12
170 Correct 3 ms 13576 KB Output is correct : V - N = 12
171 Runtime error 7 ms 17868 KB Execution killed with signal 6
172 Halted 0 ms 0 KB -