Submission #418499

#TimeUsernameProblemLanguageResultExecution timeMemory
418499JediMaster11Mechanical Doll (IOI18_doll)C++17
9 / 100
80 ms8336 KiB
#include <bits/stdc++.h> #include "doll.h" using namespace std; #define fo(a, b, c) for (int a = b; a < c; a++) #define ll long long #define print(x) cout << x << "\n"; #define vint vector<int> #define vll vector<long long> // // should call // // c - array of length m + 1, the exit of device i is c[i] // // x, y - length s is the number of switches. exit 'X' of -i is connected to x[i-1] and same for Y // // called once // void answer(vint C, vint X, vint Y) // { // fo(i, 0, C.size()) // { // print(C[i]); // } // print(""); // fo(i, 0, X.size()) // { // print(X[i] << " " << Y[i]); // } // } // m - number of triggers (doesnt include 0) // a - array of length n, of the serial numbers of the triggers the ball needs to enter, in the correct order void create_circuit(int m, vint a) { int n = a.size(); vint c, x, y; if (n == 1) { c = {1, 0}; answer(c, x, y); return; } int numS = pow(2, ceil(log2(n)))-1; int lRow = numS - pow(2, ceil(log2(n))-1); c = {1, -1}; fo(i, 1, numS+1) { x.push_back(-(i*2)); y.push_back(-(i*2+1)); } ll count=1; fo(i, lRow, numS+1){ if (count < n){ x[i]=1; count++; }else{ x[i]=-1; } if (count < n){ y[i]=1; count++; }else{ y[i]=-1; } } y[y.size() - 1] = 0; answer(c, x, y); } // int main() // { // ios::sync_with_stdio(0); // cin.tie(0); // vint a = {1,1, 1, 1, 1}; // create_circuit(1, a); // }
#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...