Submission #97562

#TimeUsernameProblemLanguageResultExecution timeMemory
97562silxikysBroken Device (JOI17_broken_device)C++14
85 / 100
71 ms3096 KiB
#include "Annalib.h" #include <vector> void Anna(int N, long long X, int K, int P[]) { int pos = 0; std::vector<int> ans(N,-1); std::vector<int> ternary; while (X) { int x = X % 3; ternary.push_back(x); X /= 3; } for (int i = 0; i < K; i++) { ans[P[i]] = 0; } for (int i = 0; i < N; i += 2) { if (ans[i] == 0 || ans[i+1] == 0) { ans[i] = 0; ans[i+1] = 0; } else { if (pos >= (int)ternary.size()) { ans[i] = 0; ans[i+1] = 0; continue; } if (ternary[pos] == 0) { ans[i] = 0; ans[i+1] = 1; } else if (ternary[pos] == 1) { ans[i] = 1; ans[i+1] = 0; } else { ans[i] = 1; ans[i+1] = 1; } pos++; } } for (int i = 0; i < N; i++) { //assert(ans[i] == 0 || ans[i] == 1); Set(i,ans[i]); } }
#include "Brunolib.h" #include <vector> long long Bruno(int N, int A[]) { long long ans = 0; long long mult = 1; for (int i = 0; i < N; i += 2) { int r = A[i] * 2 + A[i+1]; if (r == 0) continue; else if (r == 1) { ans += mult * 0; } else if (r == 2) { ans += mult * 1; } else { ans += mult * 2; } mult *= 3; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...