Submission #1192073

#TimeUsernameProblemLanguageResultExecution timeMemory
119207312345678cmp (balkan11_cmp)C++20
100 / 100
919 ms96156 KiB
#include "cmp.h"

int delta[6]={1, 1+(1<<12), 1+(1<<10)+(1<<12), 1+(1<<8)+(1<<10)+(1<<12), 1+(1<<6)+(1<<8)+(1<<10)+(1<<12), 1+(1<<4)+(1<<6)+(1<<8)+(1<<10)+(1<<12)};

void remember(int n) {
  for (int i=0; i<6; i++) bit_set((n>>(2*i))+delta[i]);
}

int compare(int b) {
  int l=0, r=6;
  while (l<r)
  {
    int md=(l+r)/2;
    if (bit_get((b>>(2*md))+delta[md])) r=md;
    else l=md+1;
  }
  if (l==0) return 0;
  int left=(b>>((l-1)*2))&3;
  if (left>1)
  {
    if (bit_get(((b>>(l*2))<<2)+3+delta[l-1])) return -1;
    else return 1;
  }
  else
  {
    if (bit_get(((b>>(l*2))<<2)+delta[l-1])) return 1;
    else return -1;
  }
}

/*
start(b)
function(b, loc)
{
  ans = 0
  ans = 1
  ans = -1
  if (bit_get(loc)) location
  else another location
}

start(0)=0
function(0, 0) -> 1 : 0
               -> 0 : 1
*/
#Verdict Execution timeMemoryGrader output
Fetching results...