Submission #1322357

#TimeUsernameProblemLanguageResultExecution timeMemory
1322357edocmp (balkan11_cmp)C++20
100 / 100
928 ms82752 KiB
#include "cmp.h"

int x[] = {1, 6, 48, 480};
int y[] = {6, 8, 10, 9};
int pos[] = {10, 30, 50, 70};

void remember(int n) {
    for(int i = 3; ~i; --i) {
        bit_set(pos[i] + n / x[i]);
        n %= x[i];
    }
}

int g[6];
int compare(int b) {
    for(int i = 3; ~i; --i) {
        g[i] = b / x[i];
        b %= x[i];
    }

    for(int i = 3; ~i; --i) {
        if(bit_get(pos[i] + g[i]))
            continue;
        if(g[i] * 2 > y[i] - 1) {
            for(int j = g[i] + 1; j < y[i]; j++) 
                if(bit_get(pos[i] + j)) return -1;
            return 1;
        }
        else {
            for(int j = g[i] - 1; ~j; --j) 
                if(bit_get(pos[i] + j)) return 1;
            return -1;
        }
    }
    return 0;
}


#Verdict Execution timeMemoryGrader output
Fetching results...