# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
71486 | Bruteforceman | Broken Device (JOI17_broken_device) | C++11 | 74 ms | 11792 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "Annalib.h"
void Anna( int N, long long X, int K, int P[] ){
int broke[N];
int val[N];
for(int i = 0; i < N; i++) {
broke[i] = 0;
val[i] = 0;
}
for(int i = 0; i < K; i++) {
broke[P[i]] = 1;
}
int bit = 0;
for(int i = 0; i < N; i += 3) {
if(bit > 62) break;
int cnt = broke[i] + broke[i+1] + broke[i+2];
if(cnt == 1) {
if((X >> bit) & 1) {
if(!broke[i]) val[i] = 1;
else if (!broke[i+1]) val[i+1] = 1;
else val[i+2] = 1;
} else {
if(!broke[i]) val[i] = 1;
if(!broke[i+1]) val[i+1] = 1;
if(!broke[i+2]) val[i+2] = 1;
}
++bit;
} else if (cnt == 0) {
val[i] = 1;
if((X >> bit) & 1) val[i+1] = 0;
else val[i+1] = 1;
++bit;
}
}
for(int i = 0; i < N; i++) {
Set(i, val[i]);
}
}
#include "Brunolib.h"
long long Bruno( int N, int A[] ){
int bit = 0;
long long ans = 0;
for(int i = 0; i < N; i += 3) {
if(bit > 62) break;
int cnt = A[i] + A[i+1] + A[i+2];
if(cnt) {
if(cnt & 1) ans |= 1LL << bit;
++bit;
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |