Submission #1219743

#TimeUsernameProblemLanguageResultExecution timeMemory
1219743BulaBroken Device (JOI17_broken_device)C++20
0 / 100
19 ms1344 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; void Anna(int N, long long X, int K, int P[]){ vector<int> vis(N), p(N); for(int i = 0; i < K; i++) vis[P[i]] = 1; for(int i = 0; i < N; i += 3){ int cnt = vis[i] + vis[i + 1] + vis[i + 2]; if(cnt >= 2) continue; if(cnt == 0){ int a = X % 2; X /= 2; int b = X % 2; X /= 2; if(!a && b){ p[i] = 1; p[i + 1] = 1; p[i + 2] = 1; }else if(a && !b){ p[i] = 1; p[i + 1] = 1; }else if(a && b){ p[i] = 1; p[i + 2] = 1; }else{ p[i + 1] = 1; p[i + 2] = 1; } } if(cnt == 1){ string t = "10"; if(X % 2 == 0) t = "01"; for(int j = i; j < i + 3; j++){ if(!vis[j]){ p[j] = t[0] - '0'; t.erase(t.begin()); } } X /= 2; } } for(int i = 0; i < N; i++) Set(i, p[i]); }
#include "Brunolib.h" #include <bits/stdc++.h> using namespace std; long long Bruno(int N, int A[]){ long long ans = 0, cur = 1; for(int i = 0; i < N; i += 3){ if(A[i] == 0 && A[i + 1] == 0 && A[i + 2] == 0) continue; if(A[i] == 1 && A[i + 1] == 1 && A[i + 2] == 1){ cur *= 2; ans |= cur; cur *= 2; }else if(A[i] == 1 && A[i + 1] == 1){ ans |= cur; cur *= 4; }else if(A[i] == 1 && A[i + 2] == 1){ ans |= cur; cur *= 2; ans |= cur; cur *= 2; }else if(A[i + 1] == 1 && A[i + 2] == 1){ cur *= 4; }else if((A[i] == 1 && A[i + 2] == 0) || (A[i + 1] == 1 && A[i + 2] == 0)){ ans |= cur; cur *= 2; }else{ cur *= 2; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...