답안 #56679

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
56679 2018-07-12T07:09:49 Z 김세빈(#1617) 항공 노선도 (JOI18_airline) C++11
63 / 100
738 ms 30880 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++){
		for(int j=0;j<i;j++){
			if(T[i] == T[j]) i = 1/0;
		}
	}
	
//	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){
					MakeMap(I[i], I[p]);
				}
			}
		}
	}
}

Compilation message

Bob.cpp: In function 'void Bob(int, int, int*, int*)':
Bob.cpp:82:26: warning: division by zero [-Wdiv-by-zero]
    if(T[i] == T[j]) i = 1/0;
                         ~^~
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 6640 KB Output is correct
2 Correct 8 ms 6896 KB Output is correct
3 Correct 8 ms 6640 KB Output is correct
4 Correct 8 ms 6640 KB Output is correct
5 Correct 8 ms 6736 KB Output is correct
6 Correct 9 ms 6640 KB Output is correct
7 Correct 8 ms 6640 KB Output is correct
8 Correct 9 ms 6896 KB Output is correct
9 Correct 8 ms 6640 KB Output is correct
10 Correct 8 ms 6736 KB Output is correct
11 Correct 8 ms 6896 KB Output is correct
12 Correct 8 ms 6736 KB Output is correct
13 Correct 8 ms 6640 KB Output is correct
14 Correct 8 ms 6896 KB Output is correct
15 Correct 9 ms 6784 KB Output is correct
16 Correct 8 ms 6736 KB Output is correct
17 Correct 8 ms 6632 KB Output is correct
18 Correct 8 ms 6648 KB Output is correct
19 Correct 8 ms 6896 KB Output is correct
20 Correct 8 ms 6640 KB Output is correct
21 Correct 8 ms 6736 KB Output is correct
22 Correct 8 ms 6640 KB Output is correct
23 Correct 8 ms 6640 KB Output is correct
24 Correct 8 ms 6640 KB Output is correct
25 Correct 8 ms 6896 KB Output is correct
26 Correct 8 ms 6640 KB Output is correct
27 Correct 9 ms 6752 KB Output is correct
28 Correct 8 ms 6896 KB Output is correct
29 Correct 8 ms 6896 KB Output is correct
30 Correct 8 ms 6928 KB Output is correct
31 Correct 8 ms 6648 KB Output is correct
32 Correct 8 ms 6736 KB Output is correct
33 Correct 8 ms 6736 KB Output is correct
34 Correct 8 ms 6640 KB Output is correct
35 Correct 8 ms 6640 KB Output is correct
36 Correct 8 ms 6640 KB Output is correct
37 Correct 8 ms 6640 KB Output is correct
38 Correct 8 ms 6736 KB Output is correct
39 Correct 8 ms 6640 KB Output is correct
40 Correct 8 ms 6640 KB Output is correct
41 Correct 8 ms 6640 KB Output is correct
42 Correct 8 ms 6640 KB Output is correct
43 Correct 8 ms 6736 KB Output is correct
44 Correct 8 ms 6640 KB Output is correct
45 Correct 8 ms 6744 KB Output is correct
46 Correct 13 ms 6736 KB Output is correct
47 Correct 8 ms 6640 KB Output is correct
48 Correct 8 ms 6608 KB Output is correct
49 Correct 8 ms 6640 KB Output is correct
50 Correct 9 ms 6832 KB Output is correct
51 Correct 7 ms 6896 KB Output is correct
52 Runtime error 9 ms 6640 KB Execution killed with signal 4 (could be triggered by violating memory limits)
53 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 6640 KB Output is correct
2 Correct 8 ms 6896 KB Output is correct
3 Correct 8 ms 6640 KB Output is correct
4 Correct 8 ms 6640 KB Output is correct
5 Correct 8 ms 6736 KB Output is correct
6 Correct 9 ms 6640 KB Output is correct
7 Correct 8 ms 6640 KB Output is correct
8 Correct 9 ms 6896 KB Output is correct
9 Correct 8 ms 6640 KB Output is correct
10 Correct 8 ms 6736 KB Output is correct
11 Correct 8 ms 6896 KB Output is correct
12 Correct 8 ms 6736 KB Output is correct
13 Correct 8 ms 6640 KB Output is correct
14 Correct 8 ms 6896 KB Output is correct
15 Correct 9 ms 6784 KB Output is correct
16 Correct 8 ms 6736 KB Output is correct
17 Correct 8 ms 6632 KB Output is correct
18 Correct 8 ms 6648 KB Output is correct
19 Correct 8 ms 6896 KB Output is correct
20 Correct 8 ms 6640 KB Output is correct
21 Correct 8 ms 6736 KB Output is correct
22 Correct 8 ms 6640 KB Output is correct
23 Correct 8 ms 6640 KB Output is correct
24 Correct 8 ms 6640 KB Output is correct
25 Correct 8 ms 6896 KB Output is correct
26 Correct 8 ms 6640 KB Output is correct
27 Correct 9 ms 6752 KB Output is correct
28 Correct 8 ms 6896 KB Output is correct
29 Correct 8 ms 6896 KB Output is correct
30 Correct 8 ms 6928 KB Output is correct
31 Correct 8 ms 6648 KB Output is correct
32 Correct 8 ms 6736 KB Output is correct
33 Correct 8 ms 6736 KB Output is correct
34 Correct 8 ms 6640 KB Output is correct
35 Correct 8 ms 6640 KB Output is correct
36 Correct 8 ms 6640 KB Output is correct
37 Correct 8 ms 6640 KB Output is correct
38 Correct 8 ms 6736 KB Output is correct
39 Correct 8 ms 6640 KB Output is correct
40 Correct 8 ms 6640 KB Output is correct
41 Correct 8 ms 6640 KB Output is correct
42 Correct 8 ms 6640 KB Output is correct
43 Correct 8 ms 6736 KB Output is correct
44 Correct 8 ms 6640 KB Output is correct
45 Correct 8 ms 6744 KB Output is correct
46 Correct 13 ms 6736 KB Output is correct
47 Correct 8 ms 6640 KB Output is correct
48 Correct 8 ms 6608 KB Output is correct
49 Correct 8 ms 6640 KB Output is correct
50 Correct 9 ms 6832 KB Output is correct
51 Correct 7 ms 6896 KB Output is correct
52 Runtime error 9 ms 6640 KB Execution killed with signal 4 (could be triggered by violating memory limits)
53 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 663 ms 30544 KB Output is correct : V - N = 12
2 Correct 507 ms 27704 KB Output is correct : V - N = 12
3 Correct 195 ms 16064 KB Output is correct : V - N = 12
4 Correct 13 ms 7152 KB Output is correct : V - N = 12
5 Correct 129 ms 11968 KB Output is correct : V - N = 12
6 Correct 404 ms 25680 KB Output is correct : V - N = 12
7 Correct 684 ms 30728 KB Output is correct : V - N = 12
8 Correct 586 ms 29288 KB Output is correct : V - N = 12
9 Correct 297 ms 18064 KB Output is correct : V - N = 12
10 Correct 36 ms 8432 KB Output is correct : V - N = 12
11 Correct 68 ms 9200 KB Output is correct : V - N = 12
12 Correct 371 ms 21136 KB Output is correct : V - N = 12
13 Correct 598 ms 29784 KB Output is correct : V - N = 12
14 Correct 726 ms 30416 KB Output is correct : V - N = 12
15 Correct 408 ms 24536 KB Output is correct : V - N = 12
16 Correct 87 ms 10384 KB Output is correct : V - N = 12
17 Correct 19 ms 7664 KB Output is correct : V - N = 12
18 Correct 250 ms 17016 KB Output is correct : V - N = 12
19 Correct 646 ms 28544 KB Output is correct : V - N = 12
20 Correct 707 ms 30880 KB Output is correct : V - N = 12
21 Correct 175 ms 14944 KB Output is correct : V - N = 12
22 Correct 150 ms 12312 KB Output is correct : V - N = 12
23 Correct 47 ms 9216 KB Output is correct : V - N = 12
24 Correct 10 ms 6904 KB Output is correct : V - N = 12
25 Correct 41 ms 8280 KB Output is correct : V - N = 12
26 Correct 131 ms 11792 KB Output is correct : V - N = 12
27 Correct 177 ms 13256 KB Output is correct : V - N = 12
28 Correct 118 ms 12600 KB Output is correct : V - N = 12
29 Correct 86 ms 9840 KB Output is correct : V - N = 12
30 Correct 14 ms 7248 KB Output is correct : V - N = 12
31 Correct 13 ms 6896 KB Output is correct : V - N = 12
32 Correct 12 ms 7152 KB Output is correct : V - N = 12
33 Correct 13 ms 6896 KB Output is correct : V - N = 12
34 Correct 12 ms 7152 KB Output is correct : V - N = 12
35 Correct 12 ms 7288 KB Output is correct : V - N = 12
36 Correct 686 ms 30688 KB Output is correct : V - N = 12
37 Correct 738 ms 30632 KB Output is correct : V - N = 12
38 Correct 725 ms 30504 KB Output is correct : V - N = 12
39 Correct 684 ms 30520 KB Output is correct : V - N = 12
40 Correct 676 ms 30544 KB Output is correct : V - N = 12
41 Correct 130 ms 11512 KB Output is correct : V - N = 12
42 Correct 97 ms 10880 KB Output is correct : V - N = 12
43 Correct 113 ms 11512 KB Output is correct : V - N = 12
44 Correct 13 ms 7264 KB Output is correct : V - N = 12
45 Correct 84 ms 9480 KB Output is correct : V - N = 12
46 Correct 232 ms 16440 KB Output is correct : V - N = 12
47 Correct 106 ms 11536 KB Output is correct : V - N = 12
48 Correct 307 ms 18240 KB Output is correct : V - N = 12
49 Correct 62 ms 9232 KB Output is correct : V - N = 12
50 Correct 22 ms 7688 KB Output is correct : V - N = 12
51 Correct 529 ms 27696 KB Output is correct : V - N = 12
52 Correct 13 ms 7272 KB Output is correct : V - N = 12
53 Correct 456 ms 25560 KB Output is correct : V - N = 12
54 Correct 595 ms 28856 KB Output is correct : V - N = 12
55 Correct 40 ms 8304 KB Output is correct : V - N = 12
56 Correct 357 ms 20376 KB Output is correct : V - N = 12
57 Correct 605 ms 29784 KB Output is correct : V - N = 12
58 Correct 95 ms 10384 KB Output is correct : V - N = 12
59 Correct 248 ms 16824 KB Output is correct : V - N = 12
60 Correct 665 ms 30384 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 6896 KB Output is correct : V - N = 12
64 Correct 8 ms 6640 KB Output is correct : V - N = 12
65 Correct 8 ms 6640 KB Output is correct : V - N = 12
66 Correct 9 ms 6896 KB Output is correct : V - N = 12
67 Correct 9 ms 6936 KB Output is correct : V - N = 12
68 Correct 8 ms 6896 KB Output is correct : V - N = 12
69 Correct 8 ms 6896 KB Output is correct : V - N = 12
70 Correct 8 ms 6640 KB Output is correct : V - N = 12
71 Correct 8 ms 6896 KB Output is correct : V - N = 12
72 Correct 8 ms 6896 KB Output is correct : V - N = 12
73 Correct 8 ms 6904 KB Output is correct : V - N = 12
74 Correct 8 ms 6896 KB Output is correct : V - N = 12
75 Correct 8 ms 6896 KB Output is correct : V - N = 12
76 Correct 8 ms 6904 KB Output is correct : V - N = 12
77 Correct 20 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 6904 KB Output is correct : V - N = 12
80 Correct 8 ms 6896 KB Output is correct : V - N = 12
81 Correct 8 ms 6904 KB Output is correct : V - N = 12
82 Correct 8 ms 6896 KB Output is correct : V - N = 12
83 Correct 8 ms 6640 KB Output is correct : V - N = 12
84 Correct 8 ms 6640 KB Output is correct : V - N = 12
85 Correct 8 ms 6640 KB Output is correct : V - N = 12
86 Correct 8 ms 6896 KB Output is correct : V - N = 12
87 Correct 8 ms 6896 KB Output is correct : V - N = 12
88 Correct 8 ms 6648 KB Output is correct : V - N = 12
89 Correct 8 ms 6896 KB Output is correct : V - N = 12
90 Correct 8 ms 6896 KB Output is correct : V - N = 12
91 Correct 8 ms 6896 KB Output is correct : V - N = 12
92 Correct 8 ms 6736 KB Output is correct : V - N = 12
93 Correct 8 ms 6640 KB Output is correct : V - N = 12
94 Correct 8 ms 6640 KB Output is correct : V - N = 12
95 Correct 9 ms 6640 KB Output is correct : V - N = 12
96 Correct 8 ms 6896 KB Output is correct : V - N = 12
97 Correct 8 ms 6896 KB Output is correct : V - N = 12
98 Correct 8 ms 6896 KB Output is correct : V - N = 12
99 Correct 9 ms 6904 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 8 ms 6760 KB Output is correct : V - N = 12
103 Correct 8 ms 6640 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 6728 KB Output is correct : V - N = 12
107 Correct 8 ms 6896 KB Output is correct : V - N = 12
108 Correct 8 ms 6824 KB Output is correct : V - N = 12
109 Correct 8 ms 6640 KB Output is correct : V - N = 12
110 Correct 8 ms 6736 KB Output is correct : V - N = 12
111 Correct 9 ms 6728 KB Output is correct : V - N = 12
112 Correct 8 ms 6704 KB Output is correct : V - N = 12
113 Correct 8 ms 6640 KB Output is correct : V - N = 12
114 Correct 8 ms 6760 KB Output is correct : V - N = 12
115 Correct 8 ms 6640 KB Output is correct : V - N = 12
116 Correct 8 ms 6872 KB Output is correct : V - N = 12
117 Correct 8 ms 6896 KB Output is correct : V - N = 12
118 Correct 8 ms 6640 KB Output is correct : V - N = 12
119 Correct 8 ms 6640 KB Output is correct : V - N = 12
120 Correct 8 ms 6736 KB Output is correct : V - N = 12
121 Correct 8 ms 6640 KB Output is correct : V - N = 12
122 Correct 8 ms 6640 KB Output is correct : V - N = 12
123 Correct 8 ms 6640 KB Output is correct : V - N = 12
124 Correct 8 ms 6640 KB Output is correct : V - N = 12
125 Correct 8 ms 6736 KB Output is correct : V - N = 12
126 Correct 8 ms 6640 KB Output is correct : V - N = 12
127 Correct 8 ms 6640 KB Output is correct : V - N = 12
128 Correct 8 ms 6616 KB Output is correct : V - N = 12
129 Correct 8 ms 6744 KB Output is correct : V - N = 12
130 Correct 19 ms 6640 KB Output is correct : V - N = 12
131 Correct 8 ms 6736 KB Output is correct : V - N = 12
132 Correct 8 ms 6896 KB Output is correct : V - N = 12
133 Correct 8 ms 6736 KB Output is correct : V - N = 12
134 Correct 8 ms 6736 KB Output is correct : V - N = 12
135 Correct 8 ms 7152 KB Output is correct : V - N = 12
136 Correct 18 ms 6896 KB Output is correct : V - N = 12
137 Correct 12 ms 6640 KB Output is correct : V - N = 12
138 Correct 8 ms 6640 KB Output is correct : V - N = 12
139 Correct 8 ms 6640 KB Output is correct : V - N = 12
140 Correct 8 ms 6656 KB Output is correct : V - N = 12
141 Correct 8 ms 6904 KB Output is correct : V - N = 12
142 Correct 8 ms 6640 KB Output is correct : V - N = 12
143 Correct 8 ms 6832 KB Output is correct : V - N = 12
144 Correct 8 ms 6896 KB Output is correct : V - N = 12
145 Correct 8 ms 6752 KB Output is correct : V - N = 12
146 Correct 8 ms 6896 KB Output is correct : V - N = 12
147 Correct 8 ms 6736 KB Output is correct : V - N = 12
148 Correct 8 ms 6640 KB Output is correct : V - N = 12
149 Correct 8 ms 6736 KB Output is correct : V - N = 12
150 Correct 8 ms 6704 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 7 ms 6896 KB Output is correct : V - N = 12
154 Correct 8 ms 6896 KB Output is correct : V - N = 12
155 Correct 8 ms 6640 KB Output is correct : V - N = 12
156 Correct 8 ms 6992 KB Output is correct : V - N = 12
157 Correct 8 ms 6640 KB Output is correct : V - N = 12
158 Correct 8 ms 6896 KB Output is correct : V - N = 12
159 Correct 8 ms 6736 KB Output is correct : V - N = 12
160 Correct 8 ms 6992 KB Output is correct : V - N = 12
161 Correct 8 ms 6904 KB Output is correct : V - N = 12
162 Correct 9 ms 6896 KB Output is correct : V - N = 12
163 Correct 8 ms 6736 KB Output is correct : V - N = 12
164 Correct 8 ms 6896 KB Output is correct : V - N = 12
165 Correct 8 ms 6896 KB Output is correct : V - N = 12
166 Correct 9 ms 6896 KB Output is correct : V - N = 12
167 Correct 8 ms 6752 KB Output is correct : V - N = 12
168 Correct 8 ms 6640 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 7 ms 6640 KB Output is correct : V - N = 0
172 Correct 8 ms 6896 KB Output is correct : V - N = 12
173 Correct 8 ms 6896 KB Output is correct : V - N = 12
174 Correct 8 ms 6640 KB Output is correct : V - N = 12
175 Correct 6 ms 6640 KB Output is correct : V - N = 12
176 Correct 8 ms 6896 KB Output is correct : V - N = 12
177 Correct 8 ms 6640 KB Output is correct : V - N = 12
178 Correct 8 ms 6744 KB Output is correct : V - N = 12