Submission #1310129

#TimeUsernameProblemLanguageResultExecution timeMemory
1310129AliMark71cmp (balkan11_cmp)C++20
19 / 100
812 ms82552 KiB
#include "cmp.h"
#include <bits/stdc++.h>

template<typename T>
using vec = std::vector<T>;
using namespace std;

void bs(int n) { return bit_set(n + 1); }
int  bg(int n) { return bit_get(n + 1); }

void remember(int n) {
    vec<bool> bits(12);
    for (int i = 0; i < 12; i++)
        bits[i] = n >> i & 1;
    
    int ones = (int) count(bits.begin(), bits.end(), true);
    bool flip = false;
    if (6 < ones)
        flip = true;
    
    if (flip) bs(0);
    for (int i = 11; 0 <= i; i--)
        if ((n >> i & 1) != flip)
            bs(i + 1);
}

int compare(int b) {
    int flipped = bg(0);
    for (int i = 11; 0 <= i; i--) {
        int a = bg(i + 1) ^ flipped;
        if (a ^ (b >> i & 1))
            return a ? -1 : 1;
    }
    return 0;
}

#Verdict Execution timeMemoryGrader output
Fetching results...