Submission #990915

#TimeUsernameProblemLanguageResultExecution timeMemory
990915MarwenElarbiBroken Device (JOI17_broken_device)C++17
0 / 100
26 ms2872 KiB
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
void Anna( int N, long long X, int K, int P[] ){
    int tab[N];
    memset(tab,0,sizeof tab);
    for (int i = 0; i < K; ++i)
    {
        tab[P[i]]=-1;
    }
    int convert[60];
    long long a[60];
    a[0]=1;
    for (int i = 1; i < 60; ++i)
    {
        a[i]=a[i-1]*2;
    }
    long long y=59;
    while(y--){
        if(X>=a[y]){
            X-=a[y];
            convert[y]=1;
        }else convert[y]=0;
    }
    int lst=0;
    for (int i = 0; i < N; i+=2)
    {
        if(convert[lst]==1){
            if (tab[i]!=-1&&tab[i+1]!=-1)
            {
                tab[i]=1;
                tab[i+1]=1;
                lst++;
            }
        }else{
            if (tab[i]!=-1)
            {
                tab[i]=1;
                tab[i+1]=0;
                lst++;
            }else if(tab[i+1]!=-1){
                tab[i]=0;
                tab[i+1]=1;
                lst++;
            }
        }
    }
    for (int i = 0; i < N; ++i)
    {
        if(tab[i]==1) Set(i,1);
        else Set(i,0);
    }
}
#include "Brunolib.h"
#include<bits/stdc++.h>
using namespace std;
long long Bruno( int N, int A[] ){
    int lst=0;
    long long x=0;
    long long a[60];
    a[0]=1;
    for (int i = 1; i < 60; ++i)
    {
        a[i]=a[i-1]*2;
        //cout <<a[i]<<endl;
    }
    for (int i = 0; i < N; i+=2)
    {
        if(lst>60) break;
        if(A[i]==1&&A[i+1]==1){
            x+=a[lst];
            lst++;
        }else if(A[i]==1||A[i+1]==1){
            lst++;
        }
    }
    //cout <<x<<endl;
    return x;
}
#Verdict Execution timeMemoryGrader output
Fetching results...