Submission #754117

#TimeUsernameProblemLanguageResultExecution timeMemory
754117piOOEBroken Device (JOI17_broken_device)C++17
100 / 100
36 ms2464 KiB
#include "Annalib.h" void Anna(int N, long long x, int K, int P[]) { int used[150]{}; for (int i = 0; i < K; ++i) { used[P[i]] = true; } for (int i = N - 3; i >= 0; i -= 3) { int a = 0, b = 0, c = 0; if (used[i] + used[i + 1] + used[i + 2] == 0) { if (x % 4 == 0) { b = 1; } else if (x % 4 == 1) { a = c = 1; } else if (x % 4 == 2) { a = b = 1; } else { a = b = c = 1; } x /= 4; } else if (used[i] + used[i + 1] + used[i + 2] == 1) { if (x % 2 == 0) { if (!used[i + 2]) { c = 1; } else { a = bool(x % 4), b = 1; x /= 2; } } else if (used[i]) { b = c = 1; } else { a = 1; } x /= 2; } Set(i, a), Set(i + 1, b), Set(i + 2, c); } }
#include "Brunolib.h" long long Bruno(int N, int A[]) { long long x = 0; for (int i = 0; i < N; i += 3) { switch (A[i] * 4 + A[i + 1] * 2 + A[i + 2]) { case 1: {x = x * 2; break;} case 2: {x = x * 4; break;} case 3: {x = x * 2 + 1; break;} case 4: {x = x * 2 + 1; break;} case 5: {x = x * 4 + 1; break;} case 6: {x = x * 4 + 2; break;} case 7: {x = x * 4 + 3;break;} } } return x; }
#Verdict Execution timeMemoryGrader output
Fetching results...