# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
278761 | doowey | Mechanical Doll (IOI18_doll) | C++14 | 2 ms | 204 KiB |
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 <bits/stdc++.h>
#include "doll.h"
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
#define fi first
#define se second
#define mp make_pair
int id = -1;
vector<int> X,Y;
int build(vector<int> T){
int cur = id;
id -- ;
if(T.size() == 2){
X.push_back(T[0]);
Y.push_back(T[1]);
return cur;
}
bool eq = true;
for(int i = 0 ; i < T.size(); i ++ )
if(T[i] != T[0]) eq = false;
for(auto x : T)
cout << x << " ";
cout << "\n";
if(eq){
X.push_back(T[0]);
Y.push_back(T[0]);
return cur;
}
vector<int> s1, s2;
for(int i = 0 ; i < T.size(); i ++ ){
if(i % 2 == 0) s1.push_back(T[i]);
else s2.push_back(T[i]);
}
int sz = X.size();
X.push_back(0);
Y.push_back(0);
int lef = build(s1);
int rig = build(s2);
X[sz] = lef;
Y[sz] = rig;
return cur;
}
void create_circuit(int M, vector<int> A) {
A.push_back(0);
int lg = 1;
while(lg < A.size())
lg *= 2;
vector<int> comp;
while(comp.size() + A.size() < lg)
comp.push_back(-1);
for(auto x : A)
comp.push_back(x);
vector<int> C(M+1);
for(int i = 0 ; i <= M ; i ++ )
C[i] = -1;
build(comp);
answer(C, X, Y);
}
Compilation message (stderr)
# | 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... |