This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;
void dfs(int r, vector<int> &X, vector<int> &Y, vector<int> A){
if(A.size() == 2){
X[r-1] = A[0];
Y[r-1] = A[1];
return;
}
vector<int> L, R;
for(int i=0; i<A.size(); i++){
if(i & 1) R.push_back(A[i]);
else L.push_back(A[i]);
}
X[r-1] = -2 * r;
Y[r-1] = -2 * r - 1;
dfs(2 * r, X, Y, L);
dfs(2 * r + 1, X, Y, R);
}
void create_circuit(int M, std::vector<int> A) {
if(A.size() == 1){
vector<int> C(M + 1, 0), X, Y;
C[0] = A[0];
answer(C, X, Y);
return;
}
vector<int> C(M + 1, -1);
C[0] = A[0];
int K = 0;
while((1 << K) < A.size()) K++;
A.erase(A.begin());
while(A.size() < (1 << K)) A.push_back(-1);
A.back() = 0;
vector<int> X((1 << K) - 1), Y((1 << K) - 1);
dfs(1, X, Y, A);
answer(C, X, Y);
}
Compilation message (stderr)
doll.cpp: In function 'void dfs(int, std::vector<int>&, std::vector<int>&, std::vector<int>)':
doll.cpp:12:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
12 | for(int i=0; i<A.size(); i++){
| ~^~~~~~~~~
doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:32:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
32 | while((1 << K) < A.size()) K++;
| ~~~~~~~~~^~~~~~~~~~
doll.cpp:34:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
34 | while(A.size() < (1 << K)) A.push_back(-1);
| ~~~~~~~~~^~~~~~~~~~| # | 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... |