Submission #1216563

#TimeUsernameProblemLanguageResultExecution timeMemory
1216563the_coding_poohMechanical Doll (IOI18_doll)C++20
37 / 100
72 ms13236 KiB
#include "doll.h" #include <bits/stdc++.h> #define uwu return using namespace std; vector <int> X, Y; int build_cbt(vector <int> A){ vector <int> split_A, split_B; int N = (int)A.size(); if(N == 1){ uwu A[0]; } for (int i = 0; i < N; i++){ if(!(i & 1)) split_A.push_back(A[i]); else split_B.push_back(A[i]); } int l = build_cbt(split_A), r = build_cbt(split_B); X.push_back(l); Y.push_back(r); uwu -((int)X.size()); } int build(vector <int> A){ int N = (int) A.size(); int lg = __lg(N + 1); if(N + 1 == (1 << lg)){ A.push_back(0); return build_cbt(A); } else{ while(N + 1 != (1 << __lg(N + 1))){ A.push_back(71227122); N++; } A.push_back(0); int id = build_cbt(A); for(auto &i:X){ if(i == 71227122) i = id; } for(auto &i:Y){ if(i == 71227122) i = id; } uwu id; } } void create_circuit(int M, std::vector<int> A) { vector<int> C(M + 1); X.clear(), Y.clear(); int id = build(A); C[0] = id; for (int i = 1; i <= M; ++i) { C[i] = id; } answer(C, X, Y); uwu; }
#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...