# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1233172 | PenguinsAreCute | Broken Device (JOI17_broken_device) | C++17 | 19 ms | 1344 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
void Anna( int N, long long X, int K, int P[] ) {
int cnt = 0;
bool val[N];
memset(val,1,sizeof(val));
for(int i=0;i<K;i++)
val[P[i]] = 0;
bool bn[150];
memset(bn,0,sizeof(bn));
for(int i=0;i<60;i++)
bn[i] = X & (1LL << i);
for(int i=0;i<N;i+=3) {
int badbt = 7 ^ ((val[i]) | (val[i+1]<<1) | (val[i+2]<<2));
if(!(badbt & 6) && bn[cnt] && !bn[cnt+1]) {
Set(i,0);
Set(i+1,1);
Set(i+2,1);
cnt += 2;
continue;
}
if(!(badbt & 1) && !bn[cnt] && !bn[cnt+1]) {
Set(i,1);
Set(i+1,0);
Set(i+2,0);
cnt += 2;
continue;
}
if(!(badbt & 5) && !bn[cnt] && bn[cnt+1]) {
Set(i,1);
Set(i+1,0);
Set(i+2,1);
cnt += 2;
continue;
}
if(!(badbt & 7) && bn[cnt] && bn[cnt+1]) {
Set(i,1);
Set(i+1,1);
Set(i+2,1);
cnt += 2;
continue;
}
if(!(badbt & 4) && bn[cnt]) {
Set(i,0);
Set(i+1,0);
Set(i+2,1);
cnt += 1;
continue;
}
if(!(badbt & 3) && bn[cnt]) {
Set(i,1);
Set(i+1,1);
Set(i+2,0);
cnt += 1;
continue;
}
if(!(badbt & 2) && !bn[cnt]) {
Set(i,0);
Set(i+1,1);
Set(i+2,0);
cnt += 1;
continue;
}
Set(i,0);
Set(i+1,0);
Set(i+2,0);
}
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
long long Bruno( int N, int A[] ){
long long X = 0;
int cnt = 0;
int st[8] = {0,0,0,1,1,2,1,3}, sh[8] = {0,2,1,1,1,2,2,2};
for(int i=0;i<N;i+=3) {
int bt = (A[i]) | (A[i+1] << 1) | (A[i+2] << 2);
X |= (st[bt] << exchange(cnt,cnt+sh[bt]));
}
return X;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |