Submission #133252

#TimeUsernameProblemLanguageResultExecution timeMemory
133252118907Mechanical Doll (IOI18_doll)C++14
37 / 100
101 ms9956 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; void create_circuit(int M, std::vector<int> A) { int N = A.size(); std::vector<int> C(M + 1); C[0] = -1; for (int i = 1; i <= M; ++i) { C[i] = -1; } int n = 1; while(n < N+1)n*=2; n/=2; std::vector<int> X(2*n), Y(2*n); for (int k = 1; k < n; ++k) { X[k] = -(2*k); Y[k] = -(2*k+1); } for(int k = n; k < 2*n; k++) { X[k] = -1; Y[k] = -1; } for(int i = 0; i < N; i++) { int b = i; int s = 1; while(s < n) { s = 2*s + (b % 2); b >>=1; } if(b%2==0)X[s] = A[i]; else Y[s] = A[i]; } int s = 1; while(s < n) { s = 2*s+1; } Y[s] = 0;//return to origin X = vector<int>(X.begin()+1,X.end()); Y = vector<int>(Y.begin()+1,Y.end()); 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...