Submission #471493

#TimeUsernameProblemLanguageResultExecution timeMemory
471493RainbowbunnyBroken Device (JOI17_broken_device)C++17
51 / 100
54 ms2544 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; int num[] = {0, 0, 1, 0, 0, 1, 2, 3}; int sd[] = {0, 1, 1, 0, 2, 2, 2, 2}; void Anna(int n, long long X, int k, int P[]) { vector <int> A; vector <int> G; for(int i = 0; i < n; i++) { A.push_back(X & 1); X >>= 1; G.push_back(0); } for(int i = 0; i < k; i++) { G[P[i]] = 1; } int pos = 0; for(int i = 0; i < n; i += 3) { int tmp = G[i] * 4 + G[i + 1] * 2 + G[i + 2]; int t = 0; for(int j = 0; j < 8; j++) { if((tmp & j) == 0) { int zz = num[j], nn = 1; for(int k = 0; k < sd[j]; k++) { zz -= nn * A[pos + k]; nn *= 2; } if(zz == 0 and sd[t] < sd[j]) { t = j; } } } for(int j = 0; j < 3; j++) { Set(i + j, (t >> (2 - j)) & 1); } pos += sd[t]; } }
#include "Brunolib.h" #include <bits/stdc++.h> using namespace std; int num[] = {0, 0, 1, 0, 0, 1, 2, 3}; int sd[] = {0, 1, 1, 0, 2, 2, 2, 2}; long long Bruno(int n, int A[]) { vector <int> V; for(int i = 0; i < n; i += 3) { int tmp = A[i] * 4 + A[i + 1] * 2 + A[i + 2]; for(int j = 0; j < sd[tmp]; j++) { V.push_back((num[tmp] >> j) & 1); } } long long ans = 0, bit = 1; for(int i = 0; i < 60; i++) { ans += bit * V[i]; bit *= 2; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...