제출 #1236302

#제출 시각아이디문제언어결과실행 시간메모리
1236302PlayVoltzMechanical Doll (IOI18_doll)C++20
37 / 100
119 ms12036 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; #define pii pair<int, int> #define mp make_pair #define pb push_back #define fi first #define se second int m; vector<int> vect, x, y; vector<pii> dnc(int node, int d){ if (d){ x[node-1]=-2*node; y[node-1]=-2*node-1; vector<pii> l=dnc(2*node, d-1); vector<pii> r=dnc(2*node+1, d-1); vector<pii> res; for (int i=0; i<l.size(); ++i)res.pb(l[i]), res.pb(r[i]); return res; } return {mp(node-1, 0), mp(node-1, 1)}; } void create_circuit(int M, vector<int> A){ m=M; vect=A; vect.pb(-1); vector<int> c(m+1, -1); int dep=ceil(log2(vect.size())); x.resize((1<<dep)-1, -1); y.resize((1<<dep)-1, -1); vector<pii> ord=dnc(1, dep-1); for (int i=0; i<vect.size()-1; ++i){ if (ord[i].se)y[ord[i].fi]=vect[i]; else x[ord[i].fi]=vect[i]; } y[y.size()-1]=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...