#include "doll.h"
#include<bits/stdc++.h>
using namespace std;
const int inf = 1<<29;
int n, m;
vector<int> x, y;
int build(vector<int> a, int S) {
//cout << S << " " << a.size() << endl;
if(a.empty() || a.back() == -1) return -1;
if(S == 1) return -inf;
x.push_back(0);
y.push_back(0);
int id = (int)x.size();
int cur = 1, t = max(0, (int)a.size() - (S/2));
vector<int> b[2];
//for(auto i : a) cout << i << " "; cout << "\n to \n";
while(a.size()) {
if(b[0].size() == t && !cur) cur = 1;
b[cur].push_back(a.back());
a.pop_back();
cur ^= 1;
}
for(int j = 0; j < 2; j++){
reverse(b[j].begin(), b[j].end());
//for(auto i : b[j]) cout << i << " "; cout << '\n';
}
int tt = build(b[0], S/2);
x[id-1] = tt;
tt = build(b[1], S/2);
y[id-1] = tt;
return -id;
}
void create_circuit(int M, vector<int> A) {
m = M, n = A.size();
A.push_back(0);
int t = A.size();
while(t&(t-1)) t++;
build(A, t);
//for(int i = 0; i < x.size(); i++) cout << i+1 << " " << x[i] << " " << y[i] << '\n';
int id = 0;
vector<int> st(x.size());
for(int p = 0, j = 0, i = 0; j < A.size(); i++) {
if(p < 0 && (st[-p - 1] ? y : x)[-p - 1] == -inf) {
(st[-p - 1] ? y : x)[-p - 1] = A[j++];
}
if(p < 0) {
p = -p - 1;
int op = p;
if(!st[p]) st[p] = 1, p = x[p];
else st[p] = 0, p = y[p];
} else p = -1;
}
//cout << '\n';
answer(vector<int>(m+1, -1), x, y);
}
Compilation message
doll.cpp: In function 'int build(std::vector<int>, int)':
doll.cpp:18:18: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
18 | if(b[0].size() == t && !cur) cur = 1;
| ~~~~~~~~~~~~^~~~
doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:42:33: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
42 | for(int p = 0, j = 0, i = 0; j < A.size(); i++) {
| ~~^~~~~~~~~~
doll.cpp:48:8: warning: unused variable 'op' [-Wunused-variable]
48 | int op = p;
| ^~
doll.cpp:40:6: warning: unused variable 'id' [-Wunused-variable]
40 | int id = 0;
| ^~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
72 ms |
4532 KB |
Output is correct |
3 |
Correct |
63 ms |
4140 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
17 ms |
996 KB |
Output is correct |
6 |
Correct |
96 ms |
6220 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
72 ms |
4532 KB |
Output is correct |
3 |
Correct |
63 ms |
4140 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
17 ms |
996 KB |
Output is correct |
6 |
Correct |
96 ms |
6220 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
144 ms |
8256 KB |
Output is correct |
9 |
Correct |
132 ms |
7912 KB |
Output is correct |
10 |
Correct |
207 ms |
11568 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
2 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
72 ms |
4532 KB |
Output is correct |
3 |
Correct |
63 ms |
4140 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
17 ms |
996 KB |
Output is correct |
6 |
Correct |
96 ms |
6220 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
144 ms |
8256 KB |
Output is correct |
9 |
Correct |
132 ms |
7912 KB |
Output is correct |
10 |
Correct |
207 ms |
11568 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
2 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
241 ms |
10848 KB |
Output is correct |
15 |
Correct |
180 ms |
8224 KB |
Output is correct |
16 |
Correct |
214 ms |
11376 KB |
Output is correct |
17 |
Correct |
2 ms |
256 KB |
Output is correct |
18 |
Correct |
2 ms |
204 KB |
Output is correct |
19 |
Correct |
2 ms |
204 KB |
Output is correct |
20 |
Correct |
256 ms |
10876 KB |
Output is correct |
21 |
Correct |
2 ms |
204 KB |
Output is correct |
22 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
2 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
120 ms |
7564 KB |
Output is correct |
3 |
Correct |
160 ms |
7184 KB |
Output is correct |
4 |
Correct |
216 ms |
10496 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
120 ms |
7564 KB |
Output is correct |
3 |
Correct |
160 ms |
7184 KB |
Output is correct |
4 |
Correct |
216 ms |
10496 KB |
Output is correct |
5 |
Correct |
199 ms |
11260 KB |
Output is correct |
6 |
Correct |
204 ms |
10604 KB |
Output is correct |
7 |
Correct |
235 ms |
11284 KB |
Output is correct |
8 |
Correct |
192 ms |
10192 KB |
Output is correct |
9 |
Correct |
135 ms |
7204 KB |
Output is correct |
10 |
Correct |
210 ms |
10884 KB |
Output is correct |
11 |
Correct |
187 ms |
10268 KB |
Output is correct |
12 |
Correct |
132 ms |
7304 KB |
Output is correct |
13 |
Correct |
164 ms |
8004 KB |
Output is correct |
14 |
Correct |
120 ms |
7560 KB |
Output is correct |
15 |
Correct |
199 ms |
7620 KB |
Output is correct |
16 |
Correct |
5 ms |
460 KB |
Output is correct |
17 |
Correct |
111 ms |
6332 KB |
Output is correct |
18 |
Correct |
116 ms |
7712 KB |
Output is correct |
19 |
Correct |
115 ms |
7304 KB |
Output is correct |
20 |
Correct |
225 ms |
10384 KB |
Output is correct |
21 |
Correct |
193 ms |
10836 KB |
Output is correct |
22 |
Correct |
214 ms |
10892 KB |
Output is correct |