# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
954938 | logangd | Broken Device (JOI17_broken_device) | C++14 | 30 ms | 2752 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 <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(1<i&&ar[i-2]==1&&ar[i-1]!=1&&ar[i]!=1)continue;
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<60;i++)cout<<s[i];
//cout<<endl;
for(int i=0;i<N;i++){
//if(ar[i]==1)cout<<1;
//else cout<<0;
if(ar[i]==1)Set(i,1);
else Set(i,0);
}
//cout<<endl;
}
#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){
//cout<<0;
curr++,i++;
}else if(A[i]==1&&(i<2||(A[i-1]!=0||A[i-2]!=1))){
ans|=((ll)1<<curr),curr++;
//cout<<1;
}
}
//cout<<endl<<ans<<endl;
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |