#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 time | Memory | Grader output |
|---|
| Fetching results... |