#include "Anthony.h"
#include <vector>
#include <cstdio>
#include <queue>
#include <cassert>
#include <algorithm>
#include <cstdlib>
using namespace std;
namespace {
vector<int> graph[20005];
int dists[20005], seen[20005];
queue<int> bfs;
// dfs
vector<int> seq = { 0, 1, 1, 0, 0, 1 };
vector<int> ch[20005];
int depth[20005], col[20005];
void dfs(int x, int p, int state) {
for (int v : graph[x]) if (v != p) {
ch[x].push_back(v);
depth[v] = depth[x] + 1;
}
if (ch[x].size() == 0) return;
if (ch[x].size() == 1) {
col[ch[x][0]] = seq[(state + 1) % 6];
dfs(ch[x][0], x, (state + 1) % 6);
} else {
for (int v : ch[x]) {
col[v] = seq[state] ^ 1;
dfs(v, x, col[v]);
}
}
}
} // namespace
std::vector<int> Mark(int N, int M, int A, int B,
std::vector<int> U, std::vector<int> V) {
vector<int> res;
for (int i = 0; i < M; i++) {
graph[U[i]].push_back(V[i]);
graph[V[i]].push_back(U[i]);
}
if (A >= 3) {
seen[0] = 1;
bfs.push(0);
while (!bfs.empty()) {
int u = bfs.front(); bfs.pop();
for (int v : graph[u]) if (!seen[v]) {
seen[v] = 1;
dists[v] = dists[u] + 1;
bfs.push(v);
}
}
//for (int i = 0; i < N; i++) fprintf(stderr, "dists[%d]: %d\n", i, dists[i]);
for (int i = 0; i < M; i++) {
int u = U[i], v = V[i];
if (dists[u] != dists[v]) {
res.push_back(min(dists[u], dists[v]) % 3);
} else {
res.push_back(dists[u] % 3);
}
}
} else {
dfs(0, 0, 1);
for (int i = 0; i < M; i++) {
int u = U[i], v = V[i];
if (depth[u] > depth[v]) swap(u, v);
res.push_back(col[v]);
}
}
for (int i = 0; i < M; i++) fprintf(stderr, "Edge %d - %d marked %d\n", U[i], V[i], res[i]);
return res;
}
#include "Catherine.h"
#include <vector>
#include <cassert>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cassert>
using namespace std;
namespace {
int A, B;
int yay = 0;
int last = 0;
int initial = 1;
vector<int> seq = { 0, 1, 1, 0, 0, 1 };
vector<int> steps;
} // namespace
void Init(int A, int B) {
steps.clear();
initial = 1;
yay = 0;
last = 0;
::A = A;
::B = B;
}
int _move(std::vector<int> y) {
if (A >= 3) {
if (y[0] == 0) {
if (y[1] == 0) return 2;
return 1;
} else if (y[1] == 0) {
if (y[2] == 0) return 0;
return 2;
} else {
return 0;
}
} else {
if (y[0] == 0 && y[1] == 0) {
steps.clear();
yay = 1;
initial = 0;
return -1;
} else if (initial && y[0] + y[1] == 2) {
// Go in a random direction
steps.push_back(y[1] > 0);
initial = 0;
return last = y[1] > 0;
} else if (y[0] + y[1] == 1) {
if (yay) return last = (y[1] == 1);
steps.push_back(y[1] == 1);
int sz = steps.size();
if (sz >= 4) {
int cooked = 0;
if (steps[sz-4] == 1) {
if (steps[sz-3] == 1) {
if (steps[sz-2] == 0 && steps[sz-1] == 0) cooked = 1;
} else {
if (steps[sz-2] == 1 && steps[sz-1] == 1) cooked = 1;
}
} else {
if (steps[sz-3] == 1) {
if (steps[sz-2] == 0 && steps[sz-1] == 1) cooked = 1;
} else {
if (steps[sz-2] == 1 && steps[sz-1] == 0) cooked = 1;
}
}
if (cooked) {
yay = 1;
initial = 0;
return -1;
}
}
return last = (y[1] == 1);
} else {
steps.clear();
if (y[0] == 0 || y[1] == 0) {
yay = 1;
initial = 0;
return -1;
} else {
vector<int> rt = { y[0], y[1] };
if (!initial) rt[last]++;
yay = 1;
initial = 0;
return last = (rt[1] == 1);
}
}
}
}
int Move(std::vector<int> y) {
int res = _move(y);
return res;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
114 ms |
16896 KB |
Output is correct |
2 |
Correct |
9 ms |
2560 KB |
Output is correct |
3 |
Correct |
101 ms |
16068 KB |
Output is correct |
4 |
Correct |
126 ms |
17932 KB |
Output is correct |
5 |
Correct |
132 ms |
17900 KB |
Output is correct |
6 |
Correct |
103 ms |
16664 KB |
Output is correct |
7 |
Correct |
99 ms |
16632 KB |
Output is correct |
8 |
Correct |
118 ms |
17244 KB |
Output is correct |
9 |
Correct |
116 ms |
17408 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
114 ms |
16896 KB |
Output is correct |
2 |
Correct |
9 ms |
2560 KB |
Output is correct |
3 |
Correct |
101 ms |
16068 KB |
Output is correct |
4 |
Correct |
126 ms |
17932 KB |
Output is correct |
5 |
Correct |
132 ms |
17900 KB |
Output is correct |
6 |
Correct |
103 ms |
16664 KB |
Output is correct |
7 |
Correct |
99 ms |
16632 KB |
Output is correct |
8 |
Correct |
118 ms |
17244 KB |
Output is correct |
9 |
Correct |
116 ms |
17408 KB |
Output is correct |
10 |
Correct |
111 ms |
14672 KB |
Output is correct |
11 |
Correct |
96 ms |
14676 KB |
Output is correct |
12 |
Correct |
103 ms |
14656 KB |
Output is correct |
13 |
Correct |
101 ms |
14716 KB |
Output is correct |
14 |
Correct |
96 ms |
14968 KB |
Output is correct |
15 |
Correct |
113 ms |
15220 KB |
Output is correct |
16 |
Correct |
112 ms |
17640 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
109 ms |
14336 KB |
Output is correct |
2 |
Correct |
10 ms |
2560 KB |
Output is correct |
3 |
Correct |
90 ms |
13916 KB |
Output is correct |
4 |
Correct |
113 ms |
15784 KB |
Output is correct |
5 |
Correct |
142 ms |
15744 KB |
Output is correct |
6 |
Correct |
112 ms |
14452 KB |
Output is correct |
7 |
Correct |
110 ms |
14408 KB |
Output is correct |
8 |
Correct |
118 ms |
15064 KB |
Output is correct |
9 |
Correct |
112 ms |
15088 KB |
Output is correct |
10 |
Correct |
122 ms |
14808 KB |
Output is correct |
11 |
Correct |
112 ms |
14732 KB |
Output is correct |
12 |
Correct |
104 ms |
14836 KB |
Output is correct |
13 |
Correct |
109 ms |
14844 KB |
Output is correct |
14 |
Correct |
115 ms |
15224 KB |
Output is correct |
15 |
Correct |
133 ms |
15244 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
109 ms |
14336 KB |
Output is correct |
2 |
Correct |
10 ms |
2560 KB |
Output is correct |
3 |
Correct |
90 ms |
13916 KB |
Output is correct |
4 |
Correct |
113 ms |
15784 KB |
Output is correct |
5 |
Correct |
142 ms |
15744 KB |
Output is correct |
6 |
Correct |
112 ms |
14452 KB |
Output is correct |
7 |
Correct |
110 ms |
14408 KB |
Output is correct |
8 |
Correct |
118 ms |
15064 KB |
Output is correct |
9 |
Correct |
112 ms |
15088 KB |
Output is correct |
10 |
Correct |
122 ms |
14808 KB |
Output is correct |
11 |
Correct |
112 ms |
14732 KB |
Output is correct |
12 |
Correct |
104 ms |
14836 KB |
Output is correct |
13 |
Correct |
109 ms |
14844 KB |
Output is correct |
14 |
Correct |
115 ms |
15224 KB |
Output is correct |
15 |
Correct |
133 ms |
15244 KB |
Output is correct |
16 |
Correct |
101 ms |
12732 KB |
Output is correct |
17 |
Correct |
97 ms |
12832 KB |
Output is correct |
18 |
Correct |
109 ms |
12804 KB |
Output is correct |
19 |
Correct |
104 ms |
12884 KB |
Output is correct |
20 |
Correct |
108 ms |
13512 KB |
Output is correct |
21 |
Correct |
108 ms |
13252 KB |
Output is correct |
22 |
Correct |
112 ms |
15232 KB |
Output is correct |
23 |
Correct |
99 ms |
12868 KB |
Output is correct |
24 |
Correct |
96 ms |
12900 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
2816 KB |
Output is correct |
2 |
Correct |
10 ms |
2560 KB |
Output is correct |
3 |
Correct |
11 ms |
2560 KB |
Output is correct |
4 |
Correct |
11 ms |
2816 KB |
Output is correct |
5 |
Correct |
12 ms |
2816 KB |
Output is correct |
6 |
Correct |
12 ms |
2816 KB |
Output is correct |
7 |
Correct |
13 ms |
2816 KB |
Output is correct |
8 |
Correct |
14 ms |
2816 KB |
Output is correct |
9 |
Correct |
12 ms |
2816 KB |
Output is correct |
10 |
Correct |
12 ms |
2816 KB |
Output is correct |
11 |
Correct |
11 ms |
2816 KB |
Output is correct |
12 |
Correct |
11 ms |
2816 KB |
Output is correct |
13 |
Correct |
11 ms |
2816 KB |
Output is correct |
14 |
Correct |
13 ms |
2816 KB |
Output is correct |
15 |
Correct |
11 ms |
2816 KB |
Output is correct |
16 |
Correct |
11 ms |
2816 KB |
Output is correct |
17 |
Correct |
11 ms |
2768 KB |
Output is correct |
18 |
Correct |
13 ms |
2560 KB |
Output is correct |
19 |
Correct |
12 ms |
2560 KB |
Output is correct |
20 |
Correct |
13 ms |
2560 KB |
Output is correct |
21 |
Correct |
12 ms |
2816 KB |
Output is correct |
22 |
Correct |
13 ms |
2768 KB |
Output is correct |
23 |
Correct |
12 ms |
2816 KB |
Output is correct |
24 |
Correct |
13 ms |
2560 KB |
Output is correct |
25 |
Correct |
11 ms |
2816 KB |
Output is correct |
26 |
Correct |
12 ms |
2816 KB |
Output is correct |
27 |
Correct |
11 ms |
2560 KB |
Output is correct |
28 |
Correct |
11 ms |
2816 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
110 ms |
12832 KB |
Output is correct |
2 |
Correct |
127 ms |
14444 KB |
Output is correct |
3 |
Correct |
9 ms |
2560 KB |
Output is correct |
4 |
Correct |
106 ms |
12608 KB |
Output is correct |
5 |
Correct |
117 ms |
16524 KB |
Output is correct |
6 |
Correct |
116 ms |
16668 KB |
Output is correct |
7 |
Correct |
104 ms |
15620 KB |
Output is correct |
8 |
Correct |
107 ms |
15728 KB |
Output is correct |
9 |
Correct |
117 ms |
16700 KB |
Output is correct |
10 |
Correct |
139 ms |
16532 KB |
Output is correct |
11 |
Correct |
118 ms |
16636 KB |
Output is correct |
12 |
Correct |
125 ms |
16728 KB |
Output is correct |
13 |
Correct |
117 ms |
16512 KB |
Output is correct |
14 |
Correct |
125 ms |
16440 KB |
Output is correct |
15 |
Correct |
117 ms |
16504 KB |
Output is correct |
16 |
Correct |
123 ms |
16572 KB |
Output is correct |
17 |
Correct |
114 ms |
16248 KB |
Output is correct |
18 |
Correct |
115 ms |
16248 KB |
Output is correct |
19 |
Correct |
125 ms |
16236 KB |
Output is correct |
20 |
Correct |
130 ms |
16312 KB |
Output is correct |
21 |
Correct |
121 ms |
16348 KB |
Output is correct |
22 |
Correct |
115 ms |
16172 KB |
Output is correct |
23 |
Correct |
108 ms |
12668 KB |
Output is correct |
24 |
Correct |
99 ms |
12600 KB |
Output is correct |
25 |
Correct |
110 ms |
13468 KB |
Output is correct |
26 |
Correct |
107 ms |
13368 KB |
Output is correct |
27 |
Correct |
117 ms |
14608 KB |
Output is correct |
28 |
Correct |
124 ms |
14564 KB |
Output is correct |
29 |
Correct |
121 ms |
14696 KB |
Output is correct |
30 |
Correct |
113 ms |
14712 KB |
Output is correct |
31 |
Correct |
104 ms |
12932 KB |
Output is correct |
32 |
Correct |
100 ms |
12764 KB |
Output is correct |
33 |
Correct |
105 ms |
13312 KB |
Output is correct |
34 |
Correct |
101 ms |
13312 KB |
Output is correct |
35 |
Correct |
113 ms |
14272 KB |
Output is correct |
36 |
Correct |
102 ms |
14260 KB |
Output is correct |
37 |
Correct |
110 ms |
14320 KB |
Output is correct |
38 |
Correct |
121 ms |
14408 KB |
Output is correct |
39 |
Correct |
107 ms |
14388 KB |
Output is correct |
40 |
Correct |
114 ms |
14340 KB |
Output is correct |
41 |
Correct |
140 ms |
15364 KB |
Output is correct |
42 |
Correct |
120 ms |
15224 KB |
Output is correct |
43 |
Correct |
114 ms |
15384 KB |
Output is correct |
44 |
Correct |
106 ms |
15224 KB |
Output is correct |
45 |
Correct |
112 ms |
15308 KB |
Output is correct |
46 |
Correct |
114 ms |
15400 KB |
Output is correct |
47 |
Correct |
113 ms |
14200 KB |
Output is correct |
48 |
Correct |
117 ms |
14188 KB |
Output is correct |
49 |
Correct |
117 ms |
14080 KB |
Output is correct |
50 |
Correct |
136 ms |
14080 KB |
Output is correct |
51 |
Correct |
125 ms |
13316 KB |
Output is correct |
52 |
Correct |
103 ms |
13320 KB |
Output is correct |
53 |
Correct |
96 ms |
13252 KB |
Output is correct |
54 |
Correct |
100 ms |
13268 KB |
Output is correct |
55 |
Correct |
96 ms |
13340 KB |
Output is correct |
56 |
Correct |
112 ms |
13380 KB |
Output is correct |
57 |
Correct |
98 ms |
13000 KB |
Output is correct |
58 |
Correct |
97 ms |
13048 KB |
Output is correct |
59 |
Correct |
107 ms |
13364 KB |
Output is correct |
60 |
Correct |
102 ms |
13388 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
100 ms |
12836 KB |
Output is correct |
2 |
Correct |
117 ms |
14156 KB |
Output is correct |
3 |
Correct |
10 ms |
2560 KB |
Output is correct |
4 |
Correct |
96 ms |
12364 KB |
Output is correct |
5 |
Correct |
111 ms |
16836 KB |
Output is correct |
6 |
Correct |
128 ms |
16784 KB |
Output is correct |
7 |
Correct |
106 ms |
15676 KB |
Output is correct |
8 |
Correct |
106 ms |
15596 KB |
Output is correct |
9 |
Correct |
118 ms |
16540 KB |
Output is correct |
10 |
Correct |
125 ms |
16488 KB |
Output is correct |
11 |
Correct |
121 ms |
16740 KB |
Output is correct |
12 |
Correct |
153 ms |
16504 KB |
Output is correct |
13 |
Correct |
142 ms |
16504 KB |
Output is correct |
14 |
Correct |
125 ms |
16612 KB |
Output is correct |
15 |
Correct |
116 ms |
16504 KB |
Output is correct |
16 |
Correct |
120 ms |
16568 KB |
Output is correct |
17 |
Correct |
114 ms |
16072 KB |
Output is correct |
18 |
Correct |
113 ms |
16248 KB |
Output is correct |
19 |
Correct |
118 ms |
16324 KB |
Output is correct |
20 |
Correct |
120 ms |
16244 KB |
Output is correct |
21 |
Correct |
119 ms |
16392 KB |
Output is correct |
22 |
Incorrect |
111 ms |
16336 KB |
Wrong Answer [6] |
23 |
Halted |
0 ms |
0 KB |
- |