Submission #1295370

#TimeUsernameProblemLanguageResultExecution timeMemory
1295370lambd47cmp (balkan11_cmp)C++20
0 / 100
380 ms93092 KiB
#include<bits/stdc++.h>
#include "cmp.h"
using namespace std;

#define L(i,j,k) for(int i=(j);i<=(k);i++)
#define R(i,j,k) for(int i=(j);i<=(k);i++)
#define sz(v) ((int)(v).size())
#define all(v) (v).begin(),(v).end()

vector<int> d={1,10,80,600,5000};

void remember(int n) {
    L(i,0,3)bit_set((n>>(9-3*i))+d[i]);
}

int compare(int b) {
    int l=0;
    int r=3;
    int ans=-1;
    while(l<r){
        int m=(l+r)/2;
        if(bit_get(d[m]+(b>>(9*3-m)+d[m]))){
            ans=m;
            l=m+1;
        }
        else r=m-1;
    }
    if(ans==3){
        return 0;//sao iguais
    }
    ans++;
    int baux=b>>(9-3*ans);
    int idat=baux+d[ans];
    int dif=0;
    int resto=baux%8;
    if(resto>=4){
        while(dif+resto<8){
            dif++;
            if(bit_get(idat+dif))return -1;
        }
        return 1;
    }
    else{
        while(dif+resto>0){
            dif--;
            if(bit_get(idat+dif))return 1;
        }
        return -1;
    }



}
#Verdict Execution timeMemoryGrader output
Fetching results...