Submission #1144691

#TimeUsernameProblemLanguageResultExecution timeMemory
1144691SulABroken Device (JOI17_broken_device)C++20
85 / 100
20 ms1588 KiB
#include <bits/stdc++.h>
#include "Annalib.h"
using namespace std;

void Anna( int N, long long X, int K, int P[] ){
    bool bad[N],st[N+1];
    st[N]=1;
    for(int i=0;i<N;i++){
        bad[i]=0;
        st[i]=0;
    }
    for(int i=0;i<K;i++){
        bad[P[i]]=1;
    }
    long long bit[38],cnt=0;
    for(int i=0;i<38;i++)bit[i]=0;
    while(X>0){
        bit[cnt]=X%3;
        X/=3; cnt++;
    }
    cnt=0;
    for( int i = 1; i < N; i+=2){
        if(!bad[i] && !bad[i-1] && cnt<38){
            if(bit[cnt]==0){
                Set(i-1,1);
                Set(i,0);
            }
            if(bit[cnt]==1){
                Set(i-1,0);
                Set(i,1);
            }
            if(bit[cnt]==2){
                Set(i-1,1);
                Set(i,1);
            }
            cnt++;
        }
        else{
            Set(i-1,0);
            Set(i,0);
        }
    }
}
  #include <bits/stdc++.h>
#include "Brunolib.h"
using namespace std;
long long Bruno( int N, int A[] ){
    long long ans=0,p=1;
    for(int i=1;i<N;i+=2){
        if(A[i]==1 || A[i-1]==1){
            if(A[i]==1 && A[i-1]==1)ans+=2*p;
            else if(A[i]==1)ans+=p;
            p*=3;
        }
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...