#include "Anthony.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
using ii = pair<int, int>;
#define X first
#define Y second
namespace {
vector<int> res;
vector<ii> G[20007];
vector<ii> ch[20007];
int ord[] = {0, 0, 1, 0, 1, 1};
bool vis[20007];
int top[20007];
bool intree[20007];
void dfs(int w = 0, int p = -1, int o = -1, int c = 0) {
int deg = G[w].size();
if(p != -1) deg--;
for(ii u : G[w]) {
if(u.X != p) {
if(deg > 1) {
res[u.Y] = c ^ 1;
dfs(u.X, w, -1, c ^ 1);
} else {
if(o == -1) {
if(c == 0)
o = 4;
else
o = 0;
}
res[u.Y] = ord[o];
dfs(u.X, w, (o + 1) % 6, ord[o]);
}
}
}
}
void dfs2(int w = 0, int p = -1, int c = 0) {
for(ii u : ch[w]) {
if(u.X != p) {
res[u.Y] = c;
intree[u.Y] = 1;
top[u.X] = c;
dfs2(u.X, w, (c + 1) % 3);
}
}
}
} // namespace
std::vector<int> Mark(int N, int M, int A, int B,
std::vector<int> U, std::vector<int> V) {
res.resize(M);
for(int i = 0 ; i < M ; i++) {
int a = U[i];
int b = V[i];
G[a].emplace_back(b, i);
G[b].emplace_back(a, i);
}
if(A == 2) {
dfs();
} else {
queue<int> Q;
vis[0] = 1;
Q.push(0);
while(!Q.empty()) {
int w = Q.front();
Q.pop();
for(ii u : G[w]) {
if(!vis[u.X]) {
ch[w].emplace_back(u);
vis[u.X] = 1;
Q.push(u.X);
}
}
}
dfs2();
for(int i = 0 ; i < M ; i++) {
if(!intree[i]) {
if(top[U[i]] == top[V[i]])
res[i] = (top[U[i]] + 1) % 3;
else {
int a = top[U[i]];
int b = top[V[i]];
if(a > b) swap(a, b);
if(a == 0 && b == 1) res[i] = 1;
if(a == 0 && b == 2) res[i] = 0;
if(a == 1 && b == 2) res[i] = 2;
}
}
}
}
for(int i = 0 ; i < M ; i++)
cerr << res[i] << " ";
cerr << endl;
return res;
}
#include "Catherine.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
namespace {
int A, B;
vector<int> hist;
bool up;
int ord[] = {0, 0, 1, 0, 1, 1};
} // namespace
void Init(int A, int B) {
::A = A;
::B = B;
}
int Move(std::vector<int> y) {
if(A > 2) {
if((y[0] ? 1 : 0) + (y[1] ? 1 : 0) + (y[2] ? 1 : 0) == 1) {
int k = 0;
if(y[1]) k = 1;
if(y[2]) k = 2;
return k;
}
if(y[0] && y[1]) return 0;
if(y[0] && y[2]) return 2;
return 1;
}
if(up) {
if(!y[0]) {
hist.push_back(1);
return 1;
}
if(!y[1]) {
hist.push_back(0);
return 0;
}
hist.push_back(hist.back() ^ 1);
return hist.back();
}
if(hist.empty() && y[0] + y[1] == 1) {
int k = 0;
if(!y[0]) k = 1;
hist.push_back(k);
up = 1;
return k;
}
int z[2];
z[0] = y[0];
z[1] = y[1];
if(!hist.empty())
z[hist.back()]++;
if(z[0] > 1 && z[1] == 1) {
hist.push_back(1);
up = true;
return y[1] ? 1 : -1;
}
if(z[1] > 1 && z[0] == 1) {
hist.push_back(0);
up = true;
return y[0] ? 0 : -1;
}
if(y[0] == 0 && y[1] == 0) {
hist.push_back(hist.back());
up = true;
return -1;
}
if(hist.size() < 4) {
vector<int> V;
for(int x = 0 ; x < y[0] ; x++) V.push_back(0);
for(int x = 0 ; x < y[1] ; x++) V.push_back(1);
if(y[0] + y[1] == 2) {
hist.push_back(V[0]);
hist.push_back(V[1]);
return V[1];
}
hist.push_back(V[0]);
return V[0];
}
bool down = false;
int k = 0;
if(!y[0]) k = 1;
for(int i = 0 ; i < 6 ; i++) {
if(hist[0] == ord[i] && hist[1] == ord[(i+1) % 6] && hist[2] == ord[(i+2) % 6]
&& hist[3] == ord[(i+3) % 6] && k == ord[(i+4) % 6]) {
down = true;
}
}
if(down) {
hist.push_back(hist.back());
up = 1;
return -1;
}
up = 1;
hist.push_back(k);
return k;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
136 ms |
17792 KB |
Output is correct |
2 |
Correct |
9 ms |
2560 KB |
Output is correct |
3 |
Correct |
122 ms |
16300 KB |
Output is correct |
4 |
Correct |
145 ms |
19748 KB |
Output is correct |
5 |
Correct |
144 ms |
19652 KB |
Output is correct |
6 |
Correct |
137 ms |
17108 KB |
Output is correct |
7 |
Correct |
130 ms |
17132 KB |
Output is correct |
8 |
Correct |
135 ms |
18512 KB |
Output is correct |
9 |
Correct |
141 ms |
18524 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
136 ms |
17792 KB |
Output is correct |
2 |
Correct |
9 ms |
2560 KB |
Output is correct |
3 |
Correct |
122 ms |
16300 KB |
Output is correct |
4 |
Correct |
145 ms |
19748 KB |
Output is correct |
5 |
Correct |
144 ms |
19652 KB |
Output is correct |
6 |
Correct |
137 ms |
17108 KB |
Output is correct |
7 |
Correct |
130 ms |
17132 KB |
Output is correct |
8 |
Correct |
135 ms |
18512 KB |
Output is correct |
9 |
Correct |
141 ms |
18524 KB |
Output is correct |
10 |
Correct |
128 ms |
14932 KB |
Output is correct |
11 |
Correct |
127 ms |
14980 KB |
Output is correct |
12 |
Correct |
133 ms |
15112 KB |
Output is correct |
13 |
Correct |
137 ms |
14968 KB |
Output is correct |
14 |
Correct |
127 ms |
15860 KB |
Output is correct |
15 |
Correct |
135 ms |
16292 KB |
Output is correct |
16 |
Correct |
139 ms |
18712 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
137 ms |
15332 KB |
Output is correct |
2 |
Correct |
9 ms |
2560 KB |
Output is correct |
3 |
Correct |
125 ms |
14180 KB |
Output is correct |
4 |
Correct |
143 ms |
17476 KB |
Output is correct |
5 |
Correct |
141 ms |
17576 KB |
Output is correct |
6 |
Correct |
130 ms |
14968 KB |
Output is correct |
7 |
Correct |
131 ms |
14964 KB |
Output is correct |
8 |
Correct |
136 ms |
16284 KB |
Output is correct |
9 |
Correct |
137 ms |
16288 KB |
Output is correct |
10 |
Correct |
130 ms |
16168 KB |
Output is correct |
11 |
Correct |
135 ms |
16160 KB |
Output is correct |
12 |
Correct |
133 ms |
16172 KB |
Output is correct |
13 |
Correct |
132 ms |
16160 KB |
Output is correct |
14 |
Correct |
148 ms |
16428 KB |
Output is correct |
15 |
Correct |
140 ms |
16424 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
137 ms |
15332 KB |
Output is correct |
2 |
Correct |
9 ms |
2560 KB |
Output is correct |
3 |
Correct |
125 ms |
14180 KB |
Output is correct |
4 |
Correct |
143 ms |
17476 KB |
Output is correct |
5 |
Correct |
141 ms |
17576 KB |
Output is correct |
6 |
Correct |
130 ms |
14968 KB |
Output is correct |
7 |
Correct |
131 ms |
14964 KB |
Output is correct |
8 |
Correct |
136 ms |
16284 KB |
Output is correct |
9 |
Correct |
137 ms |
16288 KB |
Output is correct |
10 |
Correct |
130 ms |
16168 KB |
Output is correct |
11 |
Correct |
135 ms |
16160 KB |
Output is correct |
12 |
Correct |
133 ms |
16172 KB |
Output is correct |
13 |
Correct |
132 ms |
16160 KB |
Output is correct |
14 |
Correct |
148 ms |
16428 KB |
Output is correct |
15 |
Correct |
140 ms |
16424 KB |
Output is correct |
16 |
Correct |
123 ms |
13072 KB |
Output is correct |
17 |
Correct |
122 ms |
13016 KB |
Output is correct |
18 |
Correct |
125 ms |
13040 KB |
Output is correct |
19 |
Correct |
127 ms |
13044 KB |
Output is correct |
20 |
Correct |
135 ms |
14328 KB |
Output is correct |
21 |
Correct |
129 ms |
14056 KB |
Output is correct |
22 |
Correct |
137 ms |
16408 KB |
Output is correct |
23 |
Correct |
126 ms |
13336 KB |
Output is correct |
24 |
Correct |
123 ms |
13344 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
12 ms |
2560 KB |
Output is correct |
2 |
Correct |
9 ms |
2560 KB |
Output is correct |
3 |
Correct |
12 ms |
2560 KB |
Output is correct |
4 |
Correct |
12 ms |
2560 KB |
Output is correct |
5 |
Correct |
13 ms |
2560 KB |
Output is correct |
6 |
Correct |
12 ms |
2560 KB |
Output is correct |
7 |
Correct |
12 ms |
2560 KB |
Output is correct |
8 |
Correct |
12 ms |
2560 KB |
Output is correct |
9 |
Correct |
12 ms |
2816 KB |
Output is correct |
10 |
Correct |
12 ms |
2560 KB |
Output is correct |
11 |
Correct |
12 ms |
2560 KB |
Output is correct |
12 |
Correct |
12 ms |
2816 KB |
Output is correct |
13 |
Correct |
12 ms |
2624 KB |
Output is correct |
14 |
Correct |
12 ms |
2560 KB |
Output is correct |
15 |
Correct |
12 ms |
2560 KB |
Output is correct |
16 |
Correct |
12 ms |
2560 KB |
Output is correct |
17 |
Correct |
12 ms |
2560 KB |
Output is correct |
18 |
Correct |
12 ms |
2560 KB |
Output is correct |
19 |
Correct |
13 ms |
2656 KB |
Output is correct |
20 |
Correct |
12 ms |
2560 KB |
Output is correct |
21 |
Correct |
12 ms |
2560 KB |
Output is correct |
22 |
Correct |
13 ms |
2560 KB |
Output is correct |
23 |
Correct |
12 ms |
2560 KB |
Output is correct |
24 |
Correct |
12 ms |
2560 KB |
Output is correct |
25 |
Correct |
13 ms |
2560 KB |
Output is correct |
26 |
Correct |
12 ms |
2560 KB |
Output is correct |
27 |
Correct |
12 ms |
2560 KB |
Output is correct |
28 |
Correct |
12 ms |
2560 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
134 ms |
12448 KB |
Output is correct |
2 |
Correct |
130 ms |
13684 KB |
Output is correct |
3 |
Correct |
9 ms |
2560 KB |
Output is correct |
4 |
Correct |
114 ms |
12192 KB |
Output is correct |
5 |
Correct |
139 ms |
15356 KB |
Output is correct |
6 |
Correct |
132 ms |
15060 KB |
Output is correct |
7 |
Correct |
123 ms |
14304 KB |
Output is correct |
8 |
Correct |
125 ms |
14304 KB |
Output is correct |
9 |
Correct |
134 ms |
15176 KB |
Output is correct |
10 |
Correct |
135 ms |
15052 KB |
Output is correct |
11 |
Correct |
144 ms |
15056 KB |
Output is correct |
12 |
Correct |
137 ms |
15300 KB |
Output is correct |
13 |
Correct |
137 ms |
15068 KB |
Output is correct |
14 |
Correct |
148 ms |
15188 KB |
Output is correct |
15 |
Correct |
137 ms |
15152 KB |
Output is correct |
16 |
Correct |
141 ms |
14916 KB |
Output is correct |
17 |
Correct |
135 ms |
14908 KB |
Output is correct |
18 |
Correct |
132 ms |
14796 KB |
Output is correct |
19 |
Correct |
131 ms |
14916 KB |
Output is correct |
20 |
Correct |
136 ms |
14672 KB |
Output is correct |
21 |
Correct |
138 ms |
14928 KB |
Output is correct |
22 |
Correct |
130 ms |
14800 KB |
Output is correct |
23 |
Correct |
126 ms |
12384 KB |
Output is correct |
24 |
Correct |
121 ms |
12408 KB |
Output is correct |
25 |
Correct |
123 ms |
12872 KB |
Output is correct |
26 |
Correct |
130 ms |
13004 KB |
Output is correct |
27 |
Correct |
138 ms |
13712 KB |
Output is correct |
28 |
Correct |
137 ms |
13736 KB |
Output is correct |
29 |
Correct |
140 ms |
13792 KB |
Output is correct |
30 |
Correct |
158 ms |
13796 KB |
Output is correct |
31 |
Correct |
127 ms |
12392 KB |
Output is correct |
32 |
Correct |
125 ms |
12384 KB |
Output is correct |
33 |
Correct |
135 ms |
12980 KB |
Output is correct |
34 |
Correct |
136 ms |
12744 KB |
Output is correct |
35 |
Correct |
131 ms |
13620 KB |
Output is correct |
36 |
Correct |
145 ms |
13544 KB |
Output is correct |
37 |
Correct |
149 ms |
13624 KB |
Output is correct |
38 |
Correct |
143 ms |
13516 KB |
Output is correct |
39 |
Correct |
153 ms |
13624 KB |
Output is correct |
40 |
Correct |
133 ms |
13664 KB |
Output is correct |
41 |
Correct |
152 ms |
14316 KB |
Output is correct |
42 |
Correct |
160 ms |
14148 KB |
Output is correct |
43 |
Correct |
142 ms |
14160 KB |
Output is correct |
44 |
Correct |
163 ms |
14348 KB |
Output is correct |
45 |
Correct |
163 ms |
14280 KB |
Output is correct |
46 |
Correct |
159 ms |
14328 KB |
Output is correct |
47 |
Correct |
136 ms |
13348 KB |
Output is correct |
48 |
Correct |
134 ms |
13468 KB |
Output is correct |
49 |
Correct |
149 ms |
13300 KB |
Output is correct |
50 |
Correct |
142 ms |
13516 KB |
Output is correct |
51 |
Correct |
141 ms |
12824 KB |
Output is correct |
52 |
Correct |
131 ms |
12572 KB |
Output is correct |
53 |
Correct |
129 ms |
12572 KB |
Output is correct |
54 |
Correct |
125 ms |
12724 KB |
Output is correct |
55 |
Correct |
121 ms |
12620 KB |
Output is correct |
56 |
Correct |
132 ms |
12492 KB |
Output is correct |
57 |
Correct |
141 ms |
12616 KB |
Output is correct |
58 |
Correct |
137 ms |
12492 KB |
Output is correct |
59 |
Correct |
131 ms |
12500 KB |
Output is correct |
60 |
Correct |
132 ms |
12512 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
126 ms |
12364 KB |
Output is correct |
2 |
Correct |
133 ms |
13420 KB |
Output is correct |
3 |
Correct |
10 ms |
2560 KB |
Output is correct |
4 |
Correct |
124 ms |
12084 KB |
Output is correct |
5 |
Correct |
139 ms |
15284 KB |
Output is correct |
6 |
Correct |
136 ms |
15048 KB |
Output is correct |
7 |
Correct |
125 ms |
14164 KB |
Output is correct |
8 |
Correct |
129 ms |
14160 KB |
Output is correct |
9 |
Correct |
135 ms |
15232 KB |
Output is correct |
10 |
Correct |
145 ms |
15300 KB |
Output is correct |
11 |
Correct |
139 ms |
15192 KB |
Output is correct |
12 |
Correct |
147 ms |
15028 KB |
Output is correct |
13 |
Correct |
136 ms |
15056 KB |
Output is correct |
14 |
Correct |
141 ms |
15064 KB |
Output is correct |
15 |
Correct |
148 ms |
15176 KB |
Output is correct |
16 |
Correct |
142 ms |
15052 KB |
Output is correct |
17 |
Correct |
136 ms |
14676 KB |
Output is correct |
18 |
Correct |
131 ms |
14676 KB |
Output is correct |
19 |
Correct |
145 ms |
14828 KB |
Output is correct |
20 |
Correct |
139 ms |
14908 KB |
Output is correct |
21 |
Correct |
143 ms |
14676 KB |
Output is correct |
22 |
Correct |
137 ms |
14800 KB |
Output is correct |
23 |
Correct |
124 ms |
12380 KB |
Output is correct |
24 |
Correct |
130 ms |
12608 KB |
Output is correct |
25 |
Correct |
131 ms |
12744 KB |
Output is correct |
26 |
Correct |
127 ms |
12744 KB |
Output is correct |
27 |
Correct |
131 ms |
13804 KB |
Output is correct |
28 |
Correct |
136 ms |
13764 KB |
Output is correct |
29 |
Correct |
131 ms |
13776 KB |
Output is correct |
30 |
Correct |
134 ms |
13936 KB |
Output is correct |
31 |
Correct |
134 ms |
12612 KB |
Output is correct |
32 |
Correct |
129 ms |
12388 KB |
Output is correct |
33 |
Correct |
128 ms |
12968 KB |
Output is correct |
34 |
Correct |
123 ms |
12876 KB |
Output is correct |
35 |
Correct |
133 ms |
13772 KB |
Output is correct |
36 |
Correct |
131 ms |
13736 KB |
Output is correct |
37 |
Correct |
132 ms |
13648 KB |
Output is correct |
38 |
Correct |
168 ms |
13508 KB |
Output is correct |
39 |
Correct |
129 ms |
13748 KB |
Output is correct |
40 |
Correct |
134 ms |
13636 KB |
Output is correct |
41 |
Correct |
135 ms |
14276 KB |
Output is correct |
42 |
Correct |
129 ms |
14412 KB |
Output is correct |
43 |
Correct |
131 ms |
14308 KB |
Output is correct |
44 |
Correct |
135 ms |
14308 KB |
Output is correct |
45 |
Correct |
139 ms |
14328 KB |
Output is correct |
46 |
Correct |
139 ms |
14288 KB |
Output is correct |
47 |
Correct |
126 ms |
13588 KB |
Output is correct |
48 |
Correct |
130 ms |
13432 KB |
Output is correct |
49 |
Correct |
132 ms |
13456 KB |
Output is correct |
50 |
Correct |
130 ms |
13588 KB |
Output is correct |
51 |
Correct |
138 ms |
12764 KB |
Output is correct |
52 |
Correct |
125 ms |
12648 KB |
Output is correct |
53 |
Correct |
127 ms |
12720 KB |
Output is correct |
54 |
Correct |
133 ms |
12724 KB |
Output is correct |
55 |
Correct |
126 ms |
12716 KB |
Output is correct |
56 |
Correct |
124 ms |
12724 KB |
Output is correct |
57 |
Correct |
126 ms |
12484 KB |
Output is correct |
58 |
Correct |
124 ms |
12492 KB |
Output is correct |
59 |
Correct |
129 ms |
12492 KB |
Output is correct |
60 |
Correct |
130 ms |
12512 KB |
Output is correct |