#include "doll.h"
#include <bits/stdc++.h>
#define uwu return
using namespace std;
vector <int> X, Y;
int build_cbt(vector <int> A){
vector <int> split_A, split_B;
int N = (int)A.size();
if(N == 1){
uwu A[0];
}
for (int i = 0; i < N; i++){
if(!(i & 1))
split_A.push_back(A[i]);
else
split_B.push_back(A[i]);
}
int l = build_cbt(split_A), r = build_cbt(split_B);
X.push_back(l);
Y.push_back(r);
uwu -((int)X.size());
}
int build(vector <int> A){
int N = (int) A.size();
int lg = __lg(N + 1);
if(N + 1 == (1 << lg)){
A.push_back(0);
return build_cbt(A);
}
else{
while(N + 1 != (1 << __lg(N + 1))){
A.push_back(71227122);
N++;
}
A.push_back(0);
int id = build_cbt(A);
for(auto &i:X){
if(i == 71227122)
i = id;
}
for(auto &i:Y){
if(i == 71227122)
i = id;
}
uwu id;
}
}
void create_circuit(int M, std::vector<int> A) {
vector<int> C(M + 1);
X.clear(), Y.clear();
int id = build(A);
C[0] = id;
for (int i = 1; i <= M; ++i) {
C[i] = id;
}
answer(C, X, Y);
uwu;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |