# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
369128 | denkendoemeer | 자동 인형 (IOI18_doll) | C++14 | 95 ms | 10400 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;
const int inf=2e9;
void create_circuit(int m,vector<int>a)
{
a.push_back(0);
int n=a.size(),sz=1,cnt=0;
while(sz<n)
sz=sz*2,cnt++;
vector<int>ans(sz*2);
vector<int>v(sz);
int i,j=0;
for(i=0;i<sz;i++)
ans[i+sz]=inf;
int aux=0;
for(i=0;i<sz;i++)
v[i]=v[i/2]/2|((i&1)<<(cnt-1));
for(i=0;i<sz;i++){
if (v[i]>=sz-n)
ans[v[i]+sz]=a[j],j++;
else
ans[v[i]+sz]=inf;
}
vector<int>x,y;
for(i=sz-1;i>0;i--)
if (ans[i*2]==inf && ans[i*2+1]==inf)
ans[i]=inf;
else{
ans[i]=--aux;
x.push_back(ans[i*2]);
y.push_back(ans[i*2+1]);
}
for(i=0;i<x.size();i++){
if (x[i]==inf)
x[i]=aux;
if (y[i]==inf)
y[i]=aux;
}
answer(vector<int>(m+1,aux),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... |