제출 #1233172

#제출 시각아이디문제언어결과실행 시간메모리
1233172PenguinsAreCuteBroken Device (JOI17_broken_device)C++17
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[] ) { 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 timeMemoryGrader output
Fetching results...