Submission #626135

#TimeUsernameProblemLanguageResultExecution timeMemory
626135evenvalueMechanical Doll (IOI18_doll)C++17
18 / 100
22 ms3540 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; template<typename T> using min_heap = priority_queue<T, vector<T>, greater<T>>; template<typename T> using max_heap = priority_queue<T, vector<T>, less<T>>; using int64 = long long; using ld = long double; constexpr int kInf = 1e9 + 10; constexpr int64 kInf64 = 1e15 + 10; constexpr int kMod = 1e9 + 7; int calc_elements(const int n) { const int h = 32 - __builtin_clz(n) - (__builtin_popcount(n) == 1); return (1 << h); } void create_circuit(int m, std::vector<int> A) { assert(m == 1); int n = A.size(); vector<int> C(2); vector<int> X; vector<int> Y; function<void(int)> dfs = [&](const int enter) { X.push_back(0), Y.push_back(0); //set my left child if (enter / 2 < n) { X.back() = 1; n -= enter / 2; } else { X.back() = -1; } //set my right child if (n == 1 and enter == 2) { Y.back() = 0; } else { Y.back() = -1 * (int)(1 + Y.size()); dfs(enter / 2); } }; dfs(calc_elements(n)); C[0] = 1; C[1] = -1; 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...