Submission #605183

# Submission time Handle Problem Language Result Execution time Memory
605183 2022-07-25T13:41:10 Z alireza_kaviani Airline Route Map (JOI18_airline) C++17
0 / 100
776 ms 29344 KB
#include "Alicelib.h"
#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> pii;

#define X		first
#define Y 		second
#define SZ(x)	int((x).size())

const int MAXN = 1510;
const int LOG = 10;

void Alice(int N, int M, int A[], int B[]){
	vector<pii> E;
	for(int i = 0 ; i < M ; i++){
		E.push_back({A[i] , B[i]});
	}
	for(int i = 0 ; i < N ; i++){
		E.push_back({i , N});
	}
	for(int i = N + 1 ; i < N + LOG ; i++){
		E.push_back({i , i + 1});
	}
	E.push_back({N , N + LOG + 1});
	for(int i = 0 ; i < LOG ; i++){
		for(int j = 0 ; j < N ; j++){
			if((j + 1) & (1 << i)){
				E.push_back({j , N + LOG - i});
			}
		}
	}
	InitG(N + LOG + 2 , SZ(E));
	for(int i = 0 ; i < SZ(E) ; i++){
		MakeG(i , E[i].X , E[i].Y);
	}
}
#include "Boblib.h"
#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> pii;

#define X		first
#define Y 		second
#define SZ(x)	int((x).size())

const int MAXN = 1510;
const int LOG = 10;

int type[MAXN] , val[MAXN] , ind[MAXN];
vector<int> adj[MAXN] , vec;

void DFS(int v){
	type[v] = 2;
	vec.push_back(v);
	for(int u : adj[v]){
		if(type[u])	continue;
		DFS(u);
	}
}

void Bob(int N, int M, int A[], int B[]){
	int n = N - LOG - 2;
	if(n == 1){
		InitMap(1 , 0);
		return;
	}
	for(int i = 0 ; i < M ; i++){
		adj[A[i]].push_back(B[i]);
		adj[B[i]].push_back(A[i]);
	}
	int v = -1;
	for(int i = 0 ; i < N ; i++){
		if(SZ(adj[i]) == 1){
			if(SZ(adj[adj[i][0]]) >= n){
				v = i;
			}
		}
	}
	v = adj[v][0]; type[v] = 3;
	for(int i = 0 ; i < M ; i++){
		if(A[i] == v)	type[B[i]] = 1;
		if(B[i] == v)	type[A[i]] = 1;
	}
	int u = -1;
	for(int i = 0 ; i < N ; i++){
		if(type[i] == 0){
			int cnt = 0;
			for(int j : adj[i]){
				cnt += (type[j] == 0);
			}
			if(cnt == 1){
				u = i;
				break;
			}
		}
	}
	DFS(u);
	if(SZ(adj[vec[0]]) < SZ(adj[vec.back()])){
		reverse(vec.begin() , vec.end());
	}
	assert(SZ(vec) == LOG);
	for(int i = 0 ; i < LOG ; i++){
		val[vec[i]] = i;
		type[vec[i]] = 2;
	}
	vector<pii> E;
	for(int i = 0 ; i < M ; i++){
		if(type[A[i]] > type[B[i]])	swap(A[i] , B[i]);
		if(type[A[i]] == 1 && type[B[i]] == 2){
			ind[A[i]] |= (1 << val[B[i]]);
		}
		if(type[A[i]] == 1 && type[B[i]] == 1){
			E.push_back({A[i] , B[i]});
		}
	}
	InitMap(n , SZ(E));
	for(pii i : E){
		MakeMap(ind[i.X] - 1 , ind[i.Y] - 1);
	}
}

# Verdict Execution time Memory Grader output
1 Correct 3 ms 4536 KB Output is correct
2 Correct 2 ms 4612 KB Output is correct
3 Correct 2 ms 4612 KB Output is correct
4 Correct 3 ms 4608 KB Output is correct
5 Correct 2 ms 4580 KB Output is correct
6 Correct 3 ms 4612 KB Output is correct
7 Correct 3 ms 4612 KB Output is correct
8 Correct 2 ms 4624 KB Output is correct
9 Correct 2 ms 4644 KB Output is correct
10 Correct 3 ms 4588 KB Output is correct
11 Correct 3 ms 4608 KB Output is correct
12 Correct 3 ms 4540 KB Output is correct
13 Correct 2 ms 4604 KB Output is correct
14 Correct 2 ms 4612 KB Output is correct
15 Correct 2 ms 4612 KB Output is correct
16 Correct 2 ms 4612 KB Output is correct
17 Correct 3 ms 4588 KB Output is correct
18 Correct 3 ms 4612 KB Output is correct
19 Correct 3 ms 4592 KB Output is correct
20 Correct 3 ms 4612 KB Output is correct
21 Correct 3 ms 4612 KB Output is correct
22 Correct 3 ms 4624 KB Output is correct
23 Correct 2 ms 4612 KB Output is correct
24 Correct 3 ms 4616 KB Output is correct
25 Correct 2 ms 4572 KB Output is correct
26 Correct 3 ms 4612 KB Output is correct
27 Correct 2 ms 4612 KB Output is correct
28 Correct 2 ms 4620 KB Output is correct
29 Correct 3 ms 4612 KB Output is correct
30 Correct 2 ms 4580 KB Output is correct
31 Correct 3 ms 4608 KB Output is correct
32 Correct 3 ms 4608 KB Output is correct
33 Correct 2 ms 4604 KB Output is correct
34 Correct 3 ms 4608 KB Output is correct
35 Correct 3 ms 4612 KB Output is correct
36 Correct 3 ms 4588 KB Output is correct
37 Correct 3 ms 4600 KB Output is correct
38 Correct 2 ms 4612 KB Output is correct
39 Correct 2 ms 4540 KB Output is correct
40 Correct 3 ms 4620 KB Output is correct
41 Correct 2 ms 4612 KB Output is correct
42 Correct 2 ms 4624 KB Output is correct
43 Correct 3 ms 4612 KB Output is correct
44 Correct 3 ms 4608 KB Output is correct
45 Correct 3 ms 4600 KB Output is correct
46 Correct 2 ms 4612 KB Output is correct
47 Correct 3 ms 4608 KB Output is correct
48 Correct 2 ms 4612 KB Output is correct
49 Correct 2 ms 4604 KB Output is correct
50 Correct 3 ms 4604 KB Output is correct
51 Correct 2 ms 4616 KB Output is correct
52 Correct 2 ms 4592 KB Output is correct
53 Runtime error 4 ms 5888 KB Execution killed with signal 6
54 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4536 KB Output is correct
2 Correct 2 ms 4612 KB Output is correct
3 Correct 2 ms 4612 KB Output is correct
4 Correct 3 ms 4608 KB Output is correct
5 Correct 2 ms 4580 KB Output is correct
6 Correct 3 ms 4612 KB Output is correct
7 Correct 3 ms 4612 KB Output is correct
8 Correct 2 ms 4624 KB Output is correct
9 Correct 2 ms 4644 KB Output is correct
10 Correct 3 ms 4588 KB Output is correct
11 Correct 3 ms 4608 KB Output is correct
12 Correct 3 ms 4540 KB Output is correct
13 Correct 2 ms 4604 KB Output is correct
14 Correct 2 ms 4612 KB Output is correct
15 Correct 2 ms 4612 KB Output is correct
16 Correct 2 ms 4612 KB Output is correct
17 Correct 3 ms 4588 KB Output is correct
18 Correct 3 ms 4612 KB Output is correct
19 Correct 3 ms 4592 KB Output is correct
20 Correct 3 ms 4612 KB Output is correct
21 Correct 3 ms 4612 KB Output is correct
22 Correct 3 ms 4624 KB Output is correct
23 Correct 2 ms 4612 KB Output is correct
24 Correct 3 ms 4616 KB Output is correct
25 Correct 2 ms 4572 KB Output is correct
26 Correct 3 ms 4612 KB Output is correct
27 Correct 2 ms 4612 KB Output is correct
28 Correct 2 ms 4620 KB Output is correct
29 Correct 3 ms 4612 KB Output is correct
30 Correct 2 ms 4580 KB Output is correct
31 Correct 3 ms 4608 KB Output is correct
32 Correct 3 ms 4608 KB Output is correct
33 Correct 2 ms 4604 KB Output is correct
34 Correct 3 ms 4608 KB Output is correct
35 Correct 3 ms 4612 KB Output is correct
36 Correct 3 ms 4588 KB Output is correct
37 Correct 3 ms 4600 KB Output is correct
38 Correct 2 ms 4612 KB Output is correct
39 Correct 2 ms 4540 KB Output is correct
40 Correct 3 ms 4620 KB Output is correct
41 Correct 2 ms 4612 KB Output is correct
42 Correct 2 ms 4624 KB Output is correct
43 Correct 3 ms 4612 KB Output is correct
44 Correct 3 ms 4608 KB Output is correct
45 Correct 3 ms 4600 KB Output is correct
46 Correct 2 ms 4612 KB Output is correct
47 Correct 3 ms 4608 KB Output is correct
48 Correct 2 ms 4612 KB Output is correct
49 Correct 2 ms 4604 KB Output is correct
50 Correct 3 ms 4604 KB Output is correct
51 Correct 2 ms 4616 KB Output is correct
52 Correct 2 ms 4592 KB Output is correct
53 Runtime error 4 ms 5888 KB Execution killed with signal 6
54 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 648 ms 29344 KB Output is correct : V - N = 12
2 Correct 446 ms 25640 KB Output is correct : V - N = 12
3 Correct 171 ms 13856 KB Output is correct : V - N = 12
4 Correct 9 ms 5348 KB Output is correct : V - N = 12
5 Correct 103 ms 9868 KB Output is correct : V - N = 12
6 Correct 426 ms 23692 KB Output is correct : V - N = 12
7 Correct 776 ms 28820 KB Output is correct : V - N = 12
8 Correct 519 ms 27336 KB Output is correct : V - N = 12
9 Correct 334 ms 15988 KB Output is correct : V - N = 12
10 Correct 30 ms 6308 KB Output is correct : V - N = 12
11 Correct 49 ms 7320 KB Output is correct : V - N = 12
12 Correct 383 ms 18188 KB Output is correct : V - N = 12
13 Correct 695 ms 28028 KB Output is correct : V - N = 12
14 Correct 665 ms 28584 KB Output is correct : V - N = 12
15 Correct 328 ms 22664 KB Output is correct : V - N = 12
16 Correct 98 ms 8212 KB Output is correct : V - N = 12
17 Correct 17 ms 5748 KB Output is correct : V - N = 12
18 Correct 288 ms 15036 KB Output is correct : V - N = 12
19 Correct 543 ms 26752 KB Output is correct : V - N = 12
20 Correct 756 ms 29208 KB Output is correct : V - N = 12
21 Correct 190 ms 12288 KB Output is correct : V - N = 12
22 Correct 153 ms 10448 KB Output is correct : V - N = 12
23 Correct 67 ms 7308 KB Output is correct : V - N = 12
24 Correct 4 ms 4964 KB Output is correct : V - N = 12
25 Correct 26 ms 6256 KB Output is correct : V - N = 12
26 Correct 129 ms 9804 KB Output is correct : V - N = 12
27 Correct 133 ms 11164 KB Output is correct : V - N = 12
28 Correct 138 ms 10756 KB Output is correct : V - N = 12
29 Correct 68 ms 7812 KB Output is correct : V - N = 12
30 Correct 7 ms 5400 KB Output is correct : V - N = 12
31 Correct 5 ms 5120 KB Output is correct : V - N = 12
32 Correct 7 ms 5072 KB Output is correct : V - N = 12
33 Correct 6 ms 5100 KB Output is correct : V - N = 12
34 Correct 7 ms 5100 KB Output is correct : V - N = 12
35 Correct 5 ms 5120 KB Output is correct : V - N = 12
36 Correct 617 ms 29236 KB Output is correct : V - N = 12
37 Correct 715 ms 29244 KB Output is correct : V - N = 12
38 Correct 743 ms 29304 KB Output is correct : V - N = 12
39 Correct 673 ms 29268 KB Output is correct : V - N = 12
40 Correct 721 ms 29188 KB Output is correct : V - N = 12
41 Correct 111 ms 9792 KB Output is correct : V - N = 12
42 Correct 105 ms 8596 KB Output is correct : V - N = 12
43 Correct 90 ms 9612 KB Output is correct : V - N = 12
44 Correct 9 ms 5196 KB Output is correct : V - N = 12
45 Correct 62 ms 7432 KB Output is correct : V - N = 12
46 Correct 249 ms 14420 KB Output is correct : V - N = 12
47 Correct 101 ms 9752 KB Output is correct : V - N = 12
48 Correct 277 ms 16264 KB Output is correct : V - N = 12
49 Correct 45 ms 7304 KB Output is correct : V - N = 12
50 Correct 22 ms 5756 KB Output is correct : V - N = 12
51 Correct 543 ms 25732 KB Output is correct : V - N = 12
52 Correct 8 ms 5284 KB Output is correct : V - N = 12
53 Correct 476 ms 23432 KB Output is correct : V - N = 12
54 Correct 604 ms 26996 KB Output is correct : V - N = 12
55 Correct 41 ms 6292 KB Output is correct : V - N = 12
56 Correct 373 ms 17744 KB Output is correct : V - N = 12
57 Correct 550 ms 28068 KB Output is correct : V - N = 12
58 Correct 72 ms 8204 KB Output is correct : V - N = 12
59 Correct 221 ms 14964 KB Output is correct : V - N = 12
60 Correct 734 ms 28660 KB Output is correct : V - N = 12
61 Correct 3 ms 4868 KB Output is correct : V - N = 12
62 Correct 3 ms 4868 KB Output is correct : V - N = 12
63 Correct 2 ms 4608 KB Output is correct : V - N = 12
64 Correct 3 ms 4540 KB Output is correct : V - N = 12
65 Correct 3 ms 4620 KB Output is correct : V - N = 12
66 Correct 4 ms 4868 KB Output is correct : V - N = 12
67 Correct 3 ms 4844 KB Output is correct : V - N = 12
68 Correct 3 ms 4868 KB Output is correct : V - N = 12
69 Correct 3 ms 4748 KB Output is correct : V - N = 12
70 Correct 3 ms 4612 KB Output is correct : V - N = 12
71 Correct 3 ms 4612 KB Output is correct : V - N = 12
72 Correct 3 ms 4620 KB Output is correct : V - N = 12
73 Correct 3 ms 4880 KB Output is correct : V - N = 12
74 Correct 3 ms 4864 KB Output is correct : V - N = 12
75 Correct 3 ms 4716 KB Output is correct : V - N = 12
76 Correct 2 ms 4608 KB Output is correct : V - N = 12
77 Correct 3 ms 4612 KB Output is correct : V - N = 12
78 Correct 3 ms 4612 KB Output is correct : V - N = 12
79 Correct 3 ms 4876 KB Output is correct : V - N = 12
80 Correct 3 ms 4864 KB Output is correct : V - N = 12
81 Correct 3 ms 4748 KB Output is correct : V - N = 12
82 Correct 3 ms 4620 KB Output is correct : V - N = 12
83 Correct 2 ms 4612 KB Output is correct : V - N = 12
84 Correct 3 ms 4620 KB Output is correct : V - N = 12
85 Correct 2 ms 4608 KB Output is correct : V - N = 12
86 Correct 3 ms 4736 KB Output is correct : V - N = 12
87 Correct 3 ms 4932 KB Output is correct : V - N = 12
88 Correct 3 ms 4748 KB Output is correct : V - N = 12
89 Correct 3 ms 4612 KB Output is correct : V - N = 12
90 Correct 3 ms 4620 KB Output is correct : V - N = 12
91 Correct 2 ms 4608 KB Output is correct : V - N = 12
92 Correct 2 ms 4608 KB Output is correct : V - N = 12
93 Correct 2 ms 4608 KB Output is correct : V - N = 12
94 Correct 2 ms 4608 KB Output is correct : V - N = 12
95 Correct 2 ms 4616 KB Output is correct : V - N = 12
96 Correct 3 ms 4876 KB Output is correct : V - N = 12
97 Correct 3 ms 4820 KB Output is correct : V - N = 12
98 Correct 3 ms 4876 KB Output is correct : V - N = 12
99 Correct 3 ms 4860 KB Output is correct : V - N = 12
100 Correct 3 ms 4880 KB Output is correct : V - N = 12
101 Correct 3 ms 4848 KB Output is correct : V - N = 12
102 Correct 3 ms 4612 KB Output is correct : V - N = 12
103 Correct 2 ms 4612 KB Output is correct : V - N = 12
104 Correct 2 ms 4608 KB Output is correct : V - N = 12
105 Correct 2 ms 4588 KB Output is correct : V - N = 12
106 Correct 3 ms 4612 KB Output is correct : V - N = 12
107 Correct 3 ms 4740 KB Output is correct : V - N = 12
108 Correct 3 ms 4740 KB Output is correct : V - N = 12
109 Correct 2 ms 4612 KB Output is correct : V - N = 12
110 Correct 3 ms 4612 KB Output is correct : V - N = 12
111 Correct 3 ms 4868 KB Output is correct : V - N = 12
112 Correct 3 ms 4612 KB Output is correct : V - N = 12
113 Correct 3 ms 4708 KB Output is correct : V - N = 12
114 Correct 3 ms 4740 KB Output is correct : V - N = 12
115 Correct 2 ms 4612 KB Output is correct : V - N = 12
116 Correct 3 ms 4612 KB Output is correct : V - N = 12
117 Correct 3 ms 4876 KB Output is correct : V - N = 12
118 Correct 3 ms 4552 KB Output is correct : V - N = 12
119 Correct 3 ms 4612 KB Output is correct : V - N = 12
120 Correct 3 ms 4748 KB Output is correct : V - N = 12
121 Correct 2 ms 4608 KB Output is correct : V - N = 12
122 Correct 3 ms 4624 KB Output is correct : V - N = 12
123 Correct 3 ms 4612 KB Output is correct : V - N = 12
124 Correct 2 ms 4608 KB Output is correct : V - N = 12
125 Correct 3 ms 4612 KB Output is correct : V - N = 12
126 Correct 3 ms 4616 KB Output is correct : V - N = 12
127 Correct 2 ms 4616 KB Output is correct : V - N = 12
128 Correct 2 ms 4616 KB Output is correct : V - N = 12
129 Correct 2 ms 4612 KB Output is correct : V - N = 12
130 Correct 2 ms 4608 KB Output is correct : V - N = 12
131 Correct 2 ms 4620 KB Output is correct : V - N = 12
132 Correct 2 ms 4612 KB Output is correct : V - N = 12
133 Correct 3 ms 4612 KB Output is correct : V - N = 12
134 Correct 3 ms 4612 KB Output is correct : V - N = 12
135 Correct 3 ms 4624 KB Output is correct : V - N = 12
136 Correct 3 ms 4552 KB Output is correct : V - N = 12
137 Correct 2 ms 4540 KB Output is correct : V - N = 12
138 Correct 2 ms 4612 KB Output is correct : V - N = 12
139 Correct 2 ms 4516 KB Output is correct : V - N = 12
140 Correct 2 ms 4620 KB Output is correct : V - N = 12
141 Correct 2 ms 4624 KB Output is correct : V - N = 12
142 Correct 3 ms 4616 KB Output is correct : V - N = 12
143 Correct 3 ms 4592 KB Output is correct : V - N = 12
144 Correct 2 ms 4616 KB Output is correct : V - N = 12
145 Correct 2 ms 4612 KB Output is correct : V - N = 12
146 Correct 2 ms 4612 KB Output is correct : V - N = 12
147 Correct 3 ms 4612 KB Output is correct : V - N = 12
148 Correct 3 ms 4620 KB Output is correct : V - N = 12
149 Correct 2 ms 4620 KB Output is correct : V - N = 12
150 Correct 2 ms 4620 KB Output is correct : V - N = 12
151 Correct 2 ms 4616 KB Output is correct : V - N = 12
152 Correct 3 ms 4616 KB Output is correct : V - N = 12
153 Correct 3 ms 4608 KB Output is correct : V - N = 12
154 Correct 3 ms 4608 KB Output is correct : V - N = 12
155 Correct 3 ms 4608 KB Output is correct : V - N = 12
156 Correct 3 ms 4612 KB Output is correct : V - N = 12
157 Correct 3 ms 4592 KB Output is correct : V - N = 12
158 Correct 3 ms 4612 KB Output is correct : V - N = 12
159 Correct 2 ms 4620 KB Output is correct : V - N = 12
160 Correct 2 ms 4596 KB Output is correct : V - N = 12
161 Correct 3 ms 4704 KB Output is correct : V - N = 12
162 Correct 3 ms 4612 KB Output is correct : V - N = 12
163 Correct 3 ms 4612 KB Output is correct : V - N = 12
164 Correct 3 ms 4608 KB Output is correct : V - N = 12
165 Correct 3 ms 4608 KB Output is correct : V - N = 12
166 Correct 3 ms 4608 KB Output is correct : V - N = 12
167 Correct 2 ms 4612 KB Output is correct : V - N = 12
168 Correct 3 ms 4512 KB Output is correct : V - N = 12
169 Correct 3 ms 4612 KB Output is correct : V - N = 12
170 Correct 2 ms 4584 KB Output is correct : V - N = 12
171 Correct 3 ms 4608 KB Output is correct : V - N = 12
172 Runtime error 4 ms 5892 KB Execution killed with signal 6
173 Halted 0 ms 0 KB -