Submission #594732

#TimeUsernameProblemLanguageResultExecution timeMemory
594732TimDeeMechanical Doll (IOI18_doll)C++14
0 / 100
40 ms5844 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; void create_circuit(int m, vector<int>a) { int n=a.size(); if (m==1) { int size=1; while ((size<<1)<n) size<<=1; vector<int> x(2*size-1), y(2*size-1), state(2*size-1,0), c = {1, -1}; for (int i=1; i<=size-1; ++i) { x[i-1] = -(2*i); y[i-1] = -(2*i+1); } for (int i=size-1; i<2*size-1; ++i) x[i]=1; int cnt=0, p=0; while (cnt<size) { if (p>=size-1) { if (cnt+size<n-1) y[p]=1; else y[p]=-1; ++cnt; p=0; continue; } if (!state[p]) { state[p]^=1; p<<=1; } else { state[p]^=1; p<<=1; ++p; } } y[2*size-2]=0; answer(c,x,y); } else { vector<int> c(n+1); c[0]=a[0]; for (int i=1; i<n; ++i) { c[a[i-1]]=a[i]; } c[a[n-1]]=0; vector<int> x(0), y(0); answer(c,x,y); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...