Submission #564830

#TimeUsernameProblemLanguageResultExecution timeMemory
564830birthdaycakeQuestion (Grader is different from the original contest) (CEOI14_question_grader)C++14
100 / 100
3104 ms24076 KiB
int b[950];

void cal(){
    b[0] = 1;
    int num = 1;
    for(int i = 0; num < 950; i++){
        if(__builtin_popcount(i) == 6) b[num++] = i;
    }
}

int encode (int n, int x, int y) {
    if(b[0] == 0) cal();
    for(int i = 0; i < 12; i++){
        if((b[x] & (1 << i)) && !(b[y] & (1 << i))){
            return i + 1;
        }
    }
    return 1;
}
int b[950];

void cal(){
    b[0] = 1;
    int cnt = 1;
    for(int i = 0; cnt < 950; i++){
        if(__builtin_popcount(i) == 6) b[cnt++] = i;
    }
}

int decode (int n, int q, int h) {
    if(b[0] == 0) cal();
    if(b[q] & (1 << (h - 1))  ) return 1;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...