Submission #131699

#TimeUsernameProblemLanguageResultExecution timeMemory
131699Osama_AlkhodairyBroken Device (JOI17_broken_device)C++17
85 / 100
48 ms3312 KiB
#include <bits/stdc++.h>
//~ #include "grader.cpp"
//~ #include "Bruno.cpp"
#include "Annalib.h"
using namespace std;
 
void Anna( int N, long long X, int K, int P[] ){
    vector <int> broken(N);
    for(int i = 0 ; i < K ; i++){
        broken[P[i]] = 1;
    }
    for(int i = 0 ; i < N ; i += 2){
        if(broken[i] == 1) broken[i + 1] = 1;
        if(broken[i + 1] == 1) broken[i] = 1;
    }
    for(int i = 0 ; i < N ; i += 2){
        if(broken[i]){
            Set(i, 0);
            Set(i + 1, 0);
            continue;
        }
        int cur = X % 3;
        X /= 3;
        if(cur == 0){
            Set(i, 0);
            Set(i + 1, 1);
        }
        else if(cur == 1){
            Set(i, 1);
            Set(i + 1, 0);
        }
        else{
            Set(i, 1);
            Set(i + 1, 1);
        }
    }
}
#include <bits/stdc++.h>
#include "Brunolib.h"
using namespace std;
#define ll long long

long long Bruno( int N, int A[] ){
    vector <int> r;
    for(int i = 0 ; i < N ; i += 2){
        if(A[i] == 0 && A[i + 1] == 1) r.push_back(0);
        else if(A[i] == 1 && A[i + 1] == 0) r.push_back(1);
        else if(A[i] == 1 && A[i + 1] == 1) r.push_back(2);
    }
    reverse(r.begin(), r.end());
    ll ret = 0;
    for(auto &i : r) ret = ret * 3 + i;
    return ret;
}
#Verdict Execution timeMemoryGrader output
Fetching results...