Submission #1262306

#TimeUsernameProblemLanguageResultExecution timeMemory
1262306inkvizytorBroken Device (JOI17_broken_device)C++20
0 / 100
29 ms1344 KiB
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;

void ustaw(vector<int> v, int i) {
    Set(i, v[0]), Set(i+1, v[1]), Set(i+2, v[2]);
}

void Anna(int N, long long X, int K, int P[] ){
    int s = 0;
    vector<int> a (N+2, 0);
    for (int i = 0; i < K; i++) {
        a[P[i]]=1;
    }
    for (int i = 0; i < N; i+=3) {
        int l = a[i]+a[i+1]+a[i+2];
        if (s >= 60) {
            ustaw({0, 0, 0}, i);
        }
        else if (l >= 2) {
            ustaw({0, 0, 0}, i);
        }
        else if (a[i]) {
            if (X&(1ll<<s)) {
                ustaw({0, 1, 0}, i);
                s++;
            }
            else {
                if (X&(1ll<<(s+1))) {
                    ustaw({1, 1, 0}, i);
                    s+=2;
                } 
                else {
                    ustaw({0, 0, 1}, i);
                    s+=2;
                }
            }
        }
        else if (a[i+1]) {
            if (X&(1ll<<s)) {
                ustaw({1, 0, 1}, i);
                s++;
            }
            else {
                ustaw({1, 0, 0}, i);
                s++;
            }
        }
        else if (a[i+2]) {
            if (X&(1ll<<s)) {
                ustaw({0, 1, 0}, i);
                s++;
            }
            else {
                ustaw({1, 0, 0}, i);
                s++;
            }
        }
        else {
            if (X&(1ll<<s)) {
                if (X&(1ll<<(s+1))) {
                    ustaw({1, 1, 1}, i);
                    s+=2;
                } 
                else {
                    ustaw({0, 1, 1}, i);
                    s+=2;
                }
            }
            else {
                if (X&(1ll<<(s+1))) {
                    ustaw({1, 1, 0}, i);
                    s+=2;
                } 
                else {
                    ustaw({0, 0, 1}, i);
                    s+=2;
                }
            }
        }
    }
}
    #include "Brunolib.h"
    #include <bits/stdc++.h>
    using namespace std;

    #define ll long long

    long long Bruno( int N, int A[] ){  
        ll x = 0, s = 0;
        for (int i = 0; i < N; i+=3) {
            if (A[i] == 0) {
                if (A[i+1]==0) {
                    if (A[i+2]==1) {
                        s+=2;
                    }
                }
                else {
                    if (A[i+2]==0) {
                        x+=(1<<s);
                        s++;
                    }
                    else {
                        x +=(1<<s);
                        s+=2;
                    }
                }
            }
            else {
                if (A[i+1]==0) {
                    if (A[i+2]==0) {
                        s++;
                    }
                    else {
                        x+=(1<<s);
                        s++;
                    }
                }
                else {
                    if (A[i+2]==0) {
                        x+=(1<<(s+1));
                        s+=2;
                    }
                    else {
                        x+=(1<<s)+(1<<(s+1));
                        s+=2;
                    }
                }
            }
        }
        return x;
    }
#Verdict Execution timeMemoryGrader output
Fetching results...