# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
333192 | couplefire | Mechanical Doll (IOI18_doll) | C++17 | 165 ms | 13212 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 "doll.h"
#include <bits/stdc++.h>
using namespace std;
#define INF 1000000009
void create_circuit(int m, vector<int> events) {
events.push_back(0);
int n = events.size();
int numLvl = ceil(log2(0.0+n));
int curNum = n;
vector<vector<int>> num(numLvl);
for(int i = numLvl-1; i>=0; i--){
num[i].resize(curNum = (curNum+1)/2);
}
int label = 1;
vector<int> ch[2];
ch[0] = vector<int>(2*n, -INF);
ch[1] = vector<int>(2*n, -INF);
vector<int> state(2*n, 0);
for(int i = 0; i<numLvl; i++){
for(int j = 0; j<num[i].size(); j++) num[i][j] = label++;
}
for(int i = 0; i<numLvl-1; i++){
int cur = 0;
for(int j = 0; j<num[i].size(); j++){
if(cur >= num[i+1].size()-1){
ch[0][num[i][j]] = 1;
ch[1][num[i][j]] = num[i+1][cur];
continue;
}
ch[0][num[i][j]] = num[i+1][cur++];
ch[1][num[i][j]] = num[i+1][cur++];
}
}
if(n%2 == 1){
ch[0][label-1] = 1;
}
for(int i = 0; i<n; i++){
int v = 1;
while(ch[state[v]][v] != -INF){
int t = v;
v = ch[state[v]][v];
state[t] = 1-state[t];
}
ch[state[v]][v] = -events[i];
state[v] = 1-state[v];
}
vector<int> C(m+1);
for(int i = 0; i<=m; i++){
C[i] = -1;
}
vector<int> X, Y;
for(int i = 1; i<label; i++){
X.push_back(-ch[0][i]);
Y.push_back(-ch[1][i]);
}
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... |