제출 #954933

#제출 시각아이디문제언어결과실행 시간메모리
954933logangdBroken Device (JOI17_broken_device)C++14
0 / 100
31 ms2712 KiB
#include <bits/stdc++.h> #include "Annalib.h" typedef long long ll; using namespace std; void Anna( int N, ll X, int K, int P[] ){ int ar[N]={0},s[60]={0}; for(int i=0;i<60;i++) if(X&((ll)1<<i))s[i]=1; for(int i=0;i<N;i++)ar[i]=-1; for(int i=0;i<K;i++)ar[P[i]]=0; int curr=0; for(int i=0;i<N;i++){ if(s[curr]==0){ if(ar[i]!=0&&ar[i+2]!=0){ ar[i]=ar[i+2]=1; ar[i+1]=0; curr++; i++; } }else{ if(ar[i]!=-1)continue; if(i==0||ar[i-1]==1)ar[i]=1,curr++; else if(1<i&&ar[i-2]!=1)ar[i]=1,curr++; } if(59<curr)break; } for(int i=0;i<N;i++){ if(ar[i]==1)Set(i,1); else Set(i,0); } }
#include <bits/stdc++.h> #include "Brunolib.h" typedef long long ll; using namespace std; ll Bruno(int N, int A[]){ ll ans=0, curr=0; for(int i=0;i<N;i++){ if(curr>59) break; if(i<N-2&&A[i]==1&&A[i+1]==0&&A[i+2]==1){ curr++; i++; }else if(A[i]==1&&(i==0||(1<i&&(A[i-1]!=0||A[i-2]!=1))))ans|=((ll)1<<curr),curr++; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...