Submission #1235530

#TimeUsernameProblemLanguageResultExecution timeMemory
1235530caacrugonBroken Device (JOI17_broken_device)C++20
0 / 100
1488 ms416 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; void Anna(int N, long long X, int K, int P[]){ vector<int> ln(N,0); for(int i=0;i<K;i++){ ln[P[i]]=-1; } vector<int> bits(N); for(int i=0;i<N;++i){ bits[i]=(X>>i)&1LL; } int start=0; for(int i=1;i<=N;i++){ if(i==N || bits[i]!=bits[start]){ int s=start; int e=i-1; int rangeType=bits[start]; int markerLen=(rangeType==1? 2:1); while(true){ bool ok=true; for(int j=0;j<markerLen;j++){ if(s+j>=N || ln[s+j]==-1){ ok=false; break; } } if(ok)break; s++; e--; } while(true){ bool ok=true; for(int j=0;j<markerLen;j++){ if(e-j<0 || ln[e-j]==-1){ ok=false; break; } } if(ok)break; e--; s++; } for(int j=0;j<markerLen;j++) ln[s+j]=1; for(int j=0;j<markerLen;j++) ln[e-j]=1; start=i; } } for(int i=0;i<N;i++){ if(ln[i]==1)Set(i, 1); else Set(i, 0); } }
#include "Brunolib.h" #include <bits/stdc++.h> using namespace std; #define ll long long long long Bruno(int N, int A[]){ vector<int> bits; int i=0; while(i<N){ if(A[i]!=1){ i++; continue; } int len=1; if(i+1<N && A[i+1]==1){ len=2; } int bit=(len==2?1:0); int j=i+len; while(j<N){ if(A[j]==1){ bool match=true; for(int k=0;k<len;k++){ if(j+k>=N || A[j+k]!=1){ match=false; break; } } if(match)break; } ++j; } bits.push_back(bit); i=j+len; } ll x=0; for(int idx=bits.size()-1;idx>=0;idx--){ x=(x<<1)|bits[idx]; } return x; }
#Verdict Execution timeMemoryGrader output
Fetching results...