Submission #1244746

#TimeUsernameProblemLanguageResultExecution timeMemory
1244746jeroenodbMechanical Doll (IOI18_doll)C++20
0 / 100
0 ms324 KiB
#include "doll.h" #include "bits/stdc++.h" using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vvi; void create_circuit(int M, std::vector<int> A) { int n = A.size(); int m = M; vi c(m + 1); c[0] = -1; vvi nxt(m+1); for(int i=0;i+1<n;++i) { nxt[A[i]].push_back(A[i+1]); } nxt[A.back()].push_back(0); nxt[0].push_back(A[0]); auto id0 = [&](int at) { return -(at+1); }; int at = 0; vi x,y; auto nwnode = [&]() { x.push_back(-1); y.push_back(-1); return at++; }; auto buildseg = [&](int my, vi to) { if(size(to)==0) { c[my]=0; return; }else if(size(to)==1) { c[my]=to[0]; return; }else if(size(to)==2) { int sw = nwnode(); c[my]=id0(sw); x[sw]=to[0]; y[sw]=to[1]; } else assert(false); }; for(int i=0;i<n;++i) { buildseg(i,nxt[i]); } 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...