제출 #100068

#제출 시각아이디문제언어결과실행 시간메모리
100068jamielimBroken Device (JOI17_broken_device)C++14
0 / 100
71 ms3184 KiB
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;

void Anna( int N, long long X, int K, int P[] ){
    int arr[N];
    for(int i=0;i<K;i++){
        arr[P[i]]=-1;
    }
    int poss=0;
    int k=__builtin_ctz(X);
    X>>=k;
    for(int i=0;i<N-1;i++){
        if(X==0)break;
        if(i<poss)continue;
        if(k>0){
            if(arr[i]!=-1){
                k--;
                arr[i]=1;
                arr[i+1]=0;
                poss=i+2;
            }
        }else{
            if(arr[i]!=-1&&arr[i+1]!=-1){
                arr[i]=1;
                arr[i+1]=1;
                poss=i+2;
            }
            X--;
            k=__builtin_ctz(X); X>>=k; k--;
        }
    }
    for(int i=0;i<N;i++){
        if(arr[i]!=1&&arr[i]!=0)arr[i]=0;
        Set(i,arr[i]);
    }
    return;
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;

long long Bruno( int N, int A[] ){
    long long ans=0;
    int k=0;
    for(int i=0;i<N;i++){
        if(A[i]==1&&A[i+1]==1){
            ans+=(1<<k);
            k++;
            i++;
        }else if(A[i]==1&&A[i+1]==0){
            k++;
        }
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...