# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
469074 | Omegaman | Broken Device (JOI17_broken_device) | C++14 | 42 ms | 2876 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"
#include <math.h>
bool isInArr(int ArrLen, int Arr[], int val) {
for ( int i = 0; i < ArrLen; i++ )
if (Arr[i] == val)
return true;
return false;
}
void Anna(int N, long long X, int K, int P[]){
const int xl = int(log2(X) + 0.5);
bool d[N];
long long x = X;
for( int i = 0; i < N; i++ ){
d[i] = x % 2;
x /= 2;
}
bool F[N];
for ( int i = 0; i < N; i++ ) {
F[i] = !isInArr(K, P, i);
}
bool M[N];
int dh = 0;
int sc = 0;
for( int i = 0; i < N; i++) {
if (d[dh]) {
if (F[i]) {
M[i] = 1;
dh++;
} else {
M[i + 0] = 0;
M[i + 1] = 0;
i++;
sc++;
}
} else {
if (sc < 40) {
if (F[i + 1]) {
M[i + 0] = 0;
M[i + 1] = 1;
dh++;
} else {
M[i + 0] = 0;
M[i + 1] = 0;
sc++;
}
i++;
} else {
M[i] = 0;
dh++;
}
}
}
for ( int i = 0; i < N; i++ ) {
Set(i, (int)M[i]);
}
}
#include "Brunolib.h"
long long Bruno( int N, int A[] ) {
long long X = 0;
long long inc = 1;
int len = (N < 60 ? N : 60);
bool d[len];
for( int i = 0; i < len; i++)
d[i] = 0;
int dh = 0;
int sc = 0;
for( int i = 0; i < N; i++) {
if(A[i]) {
d[dh] = 1;
dh++;
} else {
if (sc < 40) {
if (A[i + 1]) {
d[dh] = 0;
dh++;
} else {
sc++;
}
i++;
} else {
d[dh] = 0;
dh++;
}
}
}
for (int i = 0; i < len; i++) {
X += inc * d[i];
inc *= 2;
}
return X;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |