Submission #56678

# Submission time Handle Problem Language Result Execution time Memory
56678 2018-07-12T07:05:03 Z 김세빈(#1617) Airline Route Map (JOI18_airline) C++11
0 / 100
795 ms 31208 KB
#include "Alicelib.h"
#include <cassert>
#include <cstdio>

#include <bits/stdc++.h>

using namespace std;

static int I[1100];

static void makeindex()
{
	int i;
	
	for(i=0;i<1024;i++) I[i] = i;
	
	sort(I, I+1024, [&](int a, int b){
		int i, c1, c2;
		for(i=c1=c2=0;i<10;i++){
			if(a & (1<<i)) c1 ++;
			if(b & (1<<i)) c2 ++;
		}
		if(c1 != c2) return c1 > c2;
		return a < b;
	});
	
	swap(I[2], I[11]);
}

void Alice(int N, int M, int A[], int B[])
{
	if(N == 1){
		InitG(1, 0);
		return;
	}
	
	int i, j, u;
	vector <int> G[1100];
	
	u = 0;
	
	makeindex();
	
	for(i=0;i<M;i++){
		G[A[i]].push_back(B[i]);
		G[B[i]].push_back(A[i]);
		u ++;
	}
	
	for(i=0;i<N;i++){
		for(j=0;j<10;j++){
			if(I[i] & (1<<j)){
				G[i].push_back(N+j);
				G[N+j].push_back(i);
				u ++;
			}
		}
		G[i].push_back(N+11);
		G[N+11].push_back(i);
		u ++;
	}
	
	for(i=N;i<=N+10;i++){
		G[i].push_back(i+1);
		G[i+1].push_back(i);
		u ++;
	}
	
	InitG(N+12, u);
	
	int f = 0;
	
	for(i=0;i<N+12;i++){
		for(auto p: G[i]){
			if(p > i) MakeG(f++, i, p);
		}
	}
}

#include "Boblib.h"
#include <cassert>
#include <cstdio>

#include <bits/stdc++.h>

using namespace std;

static int I[1100], K[1100], P[1100];
static bool chk[1100];

static void makeindex()
{
	int i;
	
	for(i=0;i<1024;i++) I[i] = i;
	
	sort(I, I+1024, [&](int a, int b){
		int i, c1, c2;
		for(i=c1=c2=0;i<10;i++){
			if(a & (1<<i)) c1 ++;
			if(b & (1<<i)) c2 ++;
		}
		if(c1 != c2) return c1 > c2;
		return a < b;
	});
	
	swap(I[2], I[11]);
	
	for(i=0;i<1024;i++) K[I[i]] = i;
}


void Bob( int V, int U, int C[], int D[])
{
	if(V == 1){
		InitMap(1, 0);
		return;
	}
	
	vector <int> G[1100];
	int i, c, n_11, n_10, T[12], m;
	
	m = 0;
	
	for(i=0;i<U;i++){
		G[C[i]].push_back(D[i]);
		G[D[i]].push_back(C[i]);
	}
	
	makeindex();
	
	for(i=0;i<V;i++){
		if(G[i].size() == 2) break;
	}
	
	n_10 = i;
	
	if(G[G[n_10][0]].size() < G[G[n_10][1]].size()) n_11 = G[n_10][1], T[9] = G[n_10][0];
	else n_11 = G[n_10][0], T[9] = G[n_10][1];
	
	for(auto p: G[n_11]){
		if(p != n_10) chk[p] = 1;
	}
	
	T[10] = n_10;
	
	P[T[9]] = 1<<9;
	
	for(i=8;i>=0;i--){
		for(auto p: G[T[i+1]]){
			if(!chk[p] && p != T[i+2]){
				T[i] = p;
				break;
			}
		}
		P[T[i]] = 1<<i;
	}
	
//	for(i=0;i<=9;i++) printf("%d ",T[i]);
//	printf("\n");
	
//	printf("%d %d\n", n_10, n_11);
	
	for(i=0;i<V;i++){
		if(chk[i]){
			c = 0;
			for(auto p: G[i]){
				if(chk[p]) m ++;
				else if(p != n_11){
					c |= P[p];
				}
			}
//			printf("%d : %d\n", i, c);
			I[i] = K[c];
		}
	}
	
	InitMap(V-12, m/2);
	
	for(i=0;i<V;i++){
		if(chk[i]){
			for(auto p: G[i]){
				if(chk[p] && i < p){
					if(I[i] >= V-12 || I[i] < 0 || I[p] >= V-12 || I[p] < 0) i = 1/0;
					MakeMap(I[i], I[p]);
				}
			}
		}
	}
}

Compilation message

Bob.cpp: In function 'void Bob(int, int, int*, int*)':
Bob.cpp:105:68: warning: division by zero [-Wdiv-by-zero]
      if(I[i] >= V-12 || I[i] < 0 || I[p] >= V-12 || I[p] < 0) i = 1/0;
                                                                   ~^~
# Verdict Execution time Memory Grader output
1 Correct 8 ms 6728 KB Output is correct
2 Correct 8 ms 6640 KB Output is correct
3 Correct 8 ms 6648 KB Output is correct
4 Correct 8 ms 6640 KB Output is correct
5 Correct 8 ms 6688 KB Output is correct
6 Correct 8 ms 6640 KB Output is correct
7 Correct 8 ms 6896 KB Output is correct
8 Correct 7 ms 6640 KB Output is correct
9 Correct 9 ms 6896 KB Output is correct
10 Correct 8 ms 6640 KB Output is correct
11 Correct 8 ms 6704 KB Output is correct
12 Correct 8 ms 6992 KB Output is correct
13 Correct 8 ms 6640 KB Output is correct
14 Correct 8 ms 6896 KB Output is correct
15 Correct 8 ms 6648 KB Output is correct
16 Correct 8 ms 6904 KB Output is correct
17 Correct 8 ms 6896 KB Output is correct
18 Correct 8 ms 6640 KB Output is correct
19 Correct 8 ms 6640 KB Output is correct
20 Correct 8 ms 6896 KB Output is correct
21 Correct 8 ms 6736 KB Output is correct
22 Correct 8 ms 6896 KB Output is correct
23 Correct 8 ms 6640 KB Output is correct
24 Correct 8 ms 6896 KB Output is correct
25 Correct 8 ms 6904 KB Output is correct
26 Correct 8 ms 6640 KB Output is correct
27 Correct 8 ms 6640 KB Output is correct
28 Correct 7 ms 6736 KB Output is correct
29 Correct 8 ms 6896 KB Output is correct
30 Correct 8 ms 6816 KB Output is correct
31 Correct 10 ms 6640 KB Output is correct
32 Correct 7 ms 6736 KB Output is correct
33 Correct 8 ms 6736 KB Output is correct
34 Correct 8 ms 6896 KB Output is correct
35 Correct 8 ms 6640 KB Output is correct
36 Correct 8 ms 6896 KB Output is correct
37 Correct 8 ms 6792 KB Output is correct
38 Correct 8 ms 6640 KB Output is correct
39 Correct 9 ms 6736 KB Output is correct
40 Correct 8 ms 6640 KB Output is correct
41 Correct 8 ms 6728 KB Output is correct
42 Correct 8 ms 6744 KB Output is correct
43 Correct 8 ms 6896 KB Output is correct
44 Correct 8 ms 6712 KB Output is correct
45 Correct 8 ms 6640 KB Output is correct
46 Correct 8 ms 6640 KB Output is correct
47 Correct 8 ms 6896 KB Output is correct
48 Correct 8 ms 6896 KB Output is correct
49 Correct 8 ms 6640 KB Output is correct
50 Correct 8 ms 6736 KB Output is correct
51 Correct 8 ms 6896 KB Output is correct
52 Correct 8 ms 6640 KB Output is correct
53 Incorrect 8 ms 6648 KB Wrong Answer [11]
54 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 6728 KB Output is correct
2 Correct 8 ms 6640 KB Output is correct
3 Correct 8 ms 6648 KB Output is correct
4 Correct 8 ms 6640 KB Output is correct
5 Correct 8 ms 6688 KB Output is correct
6 Correct 8 ms 6640 KB Output is correct
7 Correct 8 ms 6896 KB Output is correct
8 Correct 7 ms 6640 KB Output is correct
9 Correct 9 ms 6896 KB Output is correct
10 Correct 8 ms 6640 KB Output is correct
11 Correct 8 ms 6704 KB Output is correct
12 Correct 8 ms 6992 KB Output is correct
13 Correct 8 ms 6640 KB Output is correct
14 Correct 8 ms 6896 KB Output is correct
15 Correct 8 ms 6648 KB Output is correct
16 Correct 8 ms 6904 KB Output is correct
17 Correct 8 ms 6896 KB Output is correct
18 Correct 8 ms 6640 KB Output is correct
19 Correct 8 ms 6640 KB Output is correct
20 Correct 8 ms 6896 KB Output is correct
21 Correct 8 ms 6736 KB Output is correct
22 Correct 8 ms 6896 KB Output is correct
23 Correct 8 ms 6640 KB Output is correct
24 Correct 8 ms 6896 KB Output is correct
25 Correct 8 ms 6904 KB Output is correct
26 Correct 8 ms 6640 KB Output is correct
27 Correct 8 ms 6640 KB Output is correct
28 Correct 7 ms 6736 KB Output is correct
29 Correct 8 ms 6896 KB Output is correct
30 Correct 8 ms 6816 KB Output is correct
31 Correct 10 ms 6640 KB Output is correct
32 Correct 7 ms 6736 KB Output is correct
33 Correct 8 ms 6736 KB Output is correct
34 Correct 8 ms 6896 KB Output is correct
35 Correct 8 ms 6640 KB Output is correct
36 Correct 8 ms 6896 KB Output is correct
37 Correct 8 ms 6792 KB Output is correct
38 Correct 8 ms 6640 KB Output is correct
39 Correct 9 ms 6736 KB Output is correct
40 Correct 8 ms 6640 KB Output is correct
41 Correct 8 ms 6728 KB Output is correct
42 Correct 8 ms 6744 KB Output is correct
43 Correct 8 ms 6896 KB Output is correct
44 Correct 8 ms 6712 KB Output is correct
45 Correct 8 ms 6640 KB Output is correct
46 Correct 8 ms 6640 KB Output is correct
47 Correct 8 ms 6896 KB Output is correct
48 Correct 8 ms 6896 KB Output is correct
49 Correct 8 ms 6640 KB Output is correct
50 Correct 8 ms 6736 KB Output is correct
51 Correct 8 ms 6896 KB Output is correct
52 Correct 8 ms 6640 KB Output is correct
53 Incorrect 8 ms 6648 KB Wrong Answer [11]
54 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 711 ms 30664 KB Output is correct : V - N = 12
2 Correct 571 ms 27656 KB Output is correct : V - N = 12
3 Correct 209 ms 15928 KB Output is correct : V - N = 12
4 Correct 15 ms 7360 KB Output is correct : V - N = 12
5 Correct 141 ms 11800 KB Output is correct : V - N = 12
6 Correct 399 ms 25648 KB Output is correct : V - N = 12
7 Correct 663 ms 30672 KB Output is correct : V - N = 12
8 Correct 625 ms 29328 KB Output is correct : V - N = 12
9 Correct 302 ms 18016 KB Output is correct : V - N = 12
10 Correct 44 ms 8152 KB Output is correct : V - N = 12
11 Correct 68 ms 9272 KB Output is correct : V - N = 12
12 Correct 355 ms 21288 KB Output is correct : V - N = 12
13 Correct 625 ms 29896 KB Output is correct : V - N = 12
14 Correct 682 ms 30432 KB Output is correct : V - N = 12
15 Correct 390 ms 24480 KB Output is correct : V - N = 12
16 Correct 97 ms 10408 KB Output is correct : V - N = 12
17 Correct 23 ms 7672 KB Output is correct : V - N = 12
18 Correct 268 ms 16976 KB Output is correct : V - N = 12
19 Correct 561 ms 28680 KB Output is correct : V - N = 12
20 Correct 716 ms 31208 KB Output is correct : V - N = 12
21 Correct 197 ms 15000 KB Output is correct : V - N = 12
22 Correct 149 ms 12128 KB Output is correct : V - N = 12
23 Correct 71 ms 9200 KB Output is correct : V - N = 12
24 Correct 11 ms 7248 KB Output is correct : V - N = 12
25 Correct 38 ms 8272 KB Output is correct : V - N = 12
26 Correct 119 ms 11624 KB Output is correct : V - N = 12
27 Correct 175 ms 13168 KB Output is correct : V - N = 12
28 Correct 161 ms 12560 KB Output is correct : V - N = 12
29 Correct 86 ms 9752 KB Output is correct : V - N = 12
30 Correct 19 ms 7392 KB Output is correct : V - N = 12
31 Correct 12 ms 7152 KB Output is correct : V - N = 12
32 Correct 12 ms 6992 KB Output is correct : V - N = 12
33 Correct 12 ms 6992 KB Output is correct : V - N = 12
34 Correct 12 ms 7152 KB Output is correct : V - N = 12
35 Correct 13 ms 7152 KB Output is correct : V - N = 12
36 Correct 795 ms 30472 KB Output is correct : V - N = 12
37 Correct 634 ms 30600 KB Output is correct : V - N = 12
38 Correct 670 ms 30480 KB Output is correct : V - N = 12
39 Correct 701 ms 30584 KB Output is correct : V - N = 12
40 Correct 693 ms 30664 KB Output is correct : V - N = 12
41 Correct 132 ms 11640 KB Output is correct : V - N = 12
42 Correct 96 ms 10728 KB Output is correct : V - N = 12
43 Correct 110 ms 11536 KB Output is correct : V - N = 12
44 Correct 13 ms 7152 KB Output is correct : V - N = 12
45 Correct 69 ms 9320 KB Output is correct : V - N = 12
46 Correct 258 ms 16416 KB Output is correct : V - N = 12
47 Correct 136 ms 11624 KB Output is correct : V - N = 12
48 Correct 317 ms 18048 KB Output is correct : V - N = 12
49 Correct 65 ms 9200 KB Output is correct : V - N = 12
50 Correct 23 ms 7664 KB Output is correct : V - N = 12
51 Correct 550 ms 27488 KB Output is correct : V - N = 12
52 Correct 15 ms 7344 KB Output is correct : V - N = 12
53 Correct 426 ms 25504 KB Output is correct : V - N = 12
54 Correct 579 ms 28832 KB Output is correct : V - N = 12
55 Correct 33 ms 8320 KB Output is correct : V - N = 12
56 Correct 332 ms 20512 KB Output is correct : V - N = 12
57 Correct 636 ms 29952 KB Output is correct : V - N = 12
58 Correct 113 ms 10408 KB Output is correct : V - N = 12
59 Correct 267 ms 16952 KB Output is correct : V - N = 12
60 Correct 623 ms 30224 KB Output is correct : V - N = 12
61 Correct 8 ms 6896 KB Output is correct : V - N = 12
62 Correct 8 ms 6896 KB Output is correct : V - N = 12
63 Correct 8 ms 6648 KB Output is correct : V - N = 12
64 Correct 8 ms 6896 KB Output is correct : V - N = 12
65 Correct 8 ms 6640 KB Output is correct : V - N = 12
66 Correct 8 ms 6896 KB Output is correct : V - N = 12
67 Correct 8 ms 6896 KB Output is correct : V - N = 12
68 Correct 8 ms 6896 KB Output is correct : V - N = 12
69 Correct 8 ms 6640 KB Output is correct : V - N = 12
70 Correct 9 ms 6752 KB Output is correct : V - N = 12
71 Correct 8 ms 6640 KB Output is correct : V - N = 12
72 Correct 9 ms 6896 KB Output is correct : V - N = 12
73 Correct 9 ms 6736 KB Output is correct : V - N = 12
74 Correct 8 ms 6904 KB Output is correct : V - N = 12
75 Correct 8 ms 6736 KB Output is correct : V - N = 12
76 Correct 8 ms 6896 KB Output is correct : V - N = 12
77 Correct 8 ms 6896 KB Output is correct : V - N = 12
78 Correct 8 ms 6896 KB Output is correct : V - N = 12
79 Correct 8 ms 6896 KB Output is correct : V - N = 12
80 Correct 8 ms 6896 KB Output is correct : V - N = 12
81 Correct 8 ms 6896 KB Output is correct : V - N = 12
82 Correct 8 ms 6640 KB Output is correct : V - N = 12
83 Correct 8 ms 6896 KB Output is correct : V - N = 12
84 Correct 8 ms 6640 KB Output is correct : V - N = 12
85 Correct 8 ms 6792 KB Output is correct : V - N = 12
86 Correct 8 ms 6696 KB Output is correct : V - N = 12
87 Correct 8 ms 6896 KB Output is correct : V - N = 12
88 Correct 8 ms 6896 KB Output is correct : V - N = 12
89 Correct 8 ms 6640 KB Output is correct : V - N = 12
90 Correct 8 ms 6896 KB Output is correct : V - N = 12
91 Correct 8 ms 6640 KB Output is correct : V - N = 12
92 Correct 8 ms 6640 KB Output is correct : V - N = 12
93 Correct 8 ms 6640 KB Output is correct : V - N = 12
94 Correct 9 ms 6640 KB Output is correct : V - N = 12
95 Correct 9 ms 6744 KB Output is correct : V - N = 12
96 Correct 9 ms 6896 KB Output is correct : V - N = 12
97 Correct 10 ms 6896 KB Output is correct : V - N = 12
98 Correct 9 ms 6736 KB Output is correct : V - N = 12
99 Correct 9 ms 6736 KB Output is correct : V - N = 12
100 Correct 8 ms 6896 KB Output is correct : V - N = 12
101 Correct 8 ms 6896 KB Output is correct : V - N = 12
102 Correct 9 ms 6736 KB Output is correct : V - N = 12
103 Correct 8 ms 6896 KB Output is correct : V - N = 12
104 Correct 8 ms 6640 KB Output is correct : V - N = 12
105 Correct 8 ms 6640 KB Output is correct : V - N = 12
106 Correct 8 ms 6640 KB Output is correct : V - N = 12
107 Correct 8 ms 6856 KB Output is correct : V - N = 12
108 Correct 8 ms 6640 KB Output is correct : V - N = 12
109 Correct 8 ms 6640 KB Output is correct : V - N = 12
110 Correct 8 ms 6640 KB Output is correct : V - N = 12
111 Correct 8 ms 6896 KB Output is correct : V - N = 12
112 Correct 8 ms 6648 KB Output is correct : V - N = 12
113 Correct 8 ms 6640 KB Output is correct : V - N = 12
114 Correct 8 ms 6736 KB Output is correct : V - N = 12
115 Correct 8 ms 6736 KB Output is correct : V - N = 12
116 Correct 8 ms 6736 KB Output is correct : V - N = 12
117 Correct 8 ms 6736 KB Output is correct : V - N = 12
118 Correct 8 ms 6840 KB Output is correct : V - N = 12
119 Correct 8 ms 6640 KB Output is correct : V - N = 12
120 Correct 8 ms 6744 KB Output is correct : V - N = 12
121 Correct 8 ms 6896 KB Output is correct : V - N = 12
122 Correct 8 ms 6640 KB Output is correct : V - N = 12
123 Correct 8 ms 6896 KB Output is correct : V - N = 12
124 Correct 8 ms 6640 KB Output is correct : V - N = 12
125 Correct 8 ms 6640 KB Output is correct : V - N = 12
126 Correct 8 ms 6736 KB Output is correct : V - N = 12
127 Correct 8 ms 6640 KB Output is correct : V - N = 12
128 Correct 8 ms 6736 KB Output is correct : V - N = 12
129 Correct 8 ms 6640 KB Output is correct : V - N = 12
130 Correct 8 ms 6896 KB Output is correct : V - N = 12
131 Correct 8 ms 6904 KB Output is correct : V - N = 12
132 Correct 8 ms 6896 KB Output is correct : V - N = 12
133 Correct 8 ms 6640 KB Output is correct : V - N = 12
134 Correct 8 ms 6640 KB Output is correct : V - N = 12
135 Correct 8 ms 6640 KB Output is correct : V - N = 12
136 Correct 8 ms 6896 KB Output is correct : V - N = 12
137 Correct 8 ms 6896 KB Output is correct : V - N = 12
138 Correct 8 ms 6640 KB Output is correct : V - N = 12
139 Correct 8 ms 6896 KB Output is correct : V - N = 12
140 Correct 8 ms 6736 KB Output is correct : V - N = 12
141 Correct 8 ms 6640 KB Output is correct : V - N = 12
142 Correct 8 ms 6640 KB Output is correct : V - N = 12
143 Correct 8 ms 6640 KB Output is correct : V - N = 12
144 Correct 8 ms 6896 KB Output is correct : V - N = 12
145 Correct 8 ms 6640 KB Output is correct : V - N = 12
146 Correct 8 ms 6640 KB Output is correct : V - N = 12
147 Correct 8 ms 6896 KB Output is correct : V - N = 12
148 Correct 8 ms 6736 KB Output is correct : V - N = 12
149 Correct 8 ms 6640 KB Output is correct : V - N = 12
150 Correct 8 ms 6640 KB Output is correct : V - N = 12
151 Correct 8 ms 6640 KB Output is correct : V - N = 12
152 Correct 8 ms 6640 KB Output is correct : V - N = 12
153 Correct 8 ms 6640 KB Output is correct : V - N = 12
154 Correct 8 ms 6744 KB Output is correct : V - N = 12
155 Correct 8 ms 6640 KB Output is correct : V - N = 12
156 Correct 8 ms 6640 KB Output is correct : V - N = 12
157 Correct 8 ms 6656 KB Output is correct : V - N = 12
158 Correct 8 ms 6640 KB Output is correct : V - N = 12
159 Correct 8 ms 6736 KB Output is correct : V - N = 12
160 Correct 9 ms 6896 KB Output is correct : V - N = 12
161 Correct 8 ms 6640 KB Output is correct : V - N = 12
162 Correct 8 ms 6640 KB Output is correct : V - N = 12
163 Correct 8 ms 6640 KB Output is correct : V - N = 12
164 Correct 8 ms 6640 KB Output is correct : V - N = 12
165 Correct 8 ms 6640 KB Output is correct : V - N = 12
166 Correct 8 ms 6952 KB Output is correct : V - N = 12
167 Correct 8 ms 6640 KB Output is correct : V - N = 12
168 Correct 8 ms 6728 KB Output is correct : V - N = 12
169 Correct 8 ms 6736 KB Output is correct : V - N = 12
170 Correct 8 ms 6896 KB Output is correct : V - N = 12
171 Correct 6 ms 6640 KB Output is correct : V - N = 0
172 Correct 8 ms 6696 KB Output is correct : V - N = 12
173 Incorrect 8 ms 6736 KB Wrong Answer [11]
174 Halted 0 ms 0 KB -