Submission #1167375

#TimeUsernameProblemLanguageResultExecution timeMemory
1167375trandangquangBroken Device (JOI17_broken_device)C++20
0 / 100
19 ms1344 KiB
#include"Annalib.h"

#include<bits/stdc++.h>
using namespace std;

void hihi(int p, int val){
    for(int i=0; i<3; ++i){
        Set(p+i,val>>i&1);
    }
}
void Anna(int N, long long X, int K, int P[]){
    vector<int> A(N,0);
    for(int i=0; i<K; ++i) A[P[i]]=1;
    deque<int> dq;
    for(int i=0; i<60; ++i){
        dq.push_back(X>>i&1);
    }
    for(int i=0; i<120; ++i) dq.push_back(0);

    for(int i=0; i<N; i+=3){
        int t=A[i]+A[i+1]+A[i+2];
        if(t>=2){
            hihi(i,0);
        }
        else if(t==1){
            if(A[i]==1){
                if(dq[0]) hihi(i,6);
                else hihi(i,2);
                dq.pop_front();
            }
            else if(A[i+1]==1){
                if(dq[0]){
                    hihi(i,1);
                    dq.pop_front();
                }
                else{
                    if(dq[1]) hihi(i,3);
                    else hihi(i,4);

                    dq.pop_front(); dq.pop_front();
                }
            }
            else{
                if(dq[0]) hihi(i,1);
                else hihi(i,2);
                dq.pop_front();
            }
        }
        else{
            if(!dq[0]&&!dq[1]) hihi(i,4);
            else if(!dq[0]&&dq[1]) hihi(i,3);
            else if(dq[0]&&!dq[1]) hihi(i,5);
            else hihi(i,7);

            dq.pop_front(); dq.pop_front();
        }
    }
}
#include "Brunolib.h"

#include <bits/stdc++.h>
using namespace std;

long long Bruno(int N, int A[]){
    vector<int>v;
    for(int i=0; i<N; i+=3){
        int t=A[i]+A[i+1]*2+A[i+2]*4;
        if(t==1) v.emplace_back(1);
        if(t==2) v.emplace_back(0);
        if(t==3) v.emplace_back(0), v.emplace_back(1);
        if(t==4) v.emplace_back(0), v.emplace_back(0);
        if(t==5) v.emplace_back(1), v.emplace_back(0);
        if(t==6) v.emplace_back(1);
        if(t==7) v.emplace_back(1), v.emplace_back(1);
    }

    long long X=0;
    for(int i=0; i<60; ++i){
        X|=(1LL*v[i])<<i;
    }
    return X;
}
#Verdict Execution timeMemoryGrader output
Fetching results...