제출 #530863

#제출 시각아이디문제언어결과실행 시간메모리
530863KoDcmp (balkan11_cmp)C++17
100 / 100
1770 ms102192 KiB
#include "cmp.h"

void remember(int n) {
  n += 4096;
  for (int i = 0; i < 6; ++i) {
    bit_set(n);
    n >>= 2;
  }
}

#include <iostream>

int compare(int b) {
  b += 4096;
  int ok = 6, ng = -1;
  while (ok - ng > 1) {
    const int md = (ok + ng) / 2;
    if (bit_get((b >> (2 * md)))) {
      ok = md;
    } else {
      ng = md;
    }
  }
  if (ok == 0) {
    return 0;
  }
  const int same = b >> (2 * ok);
  const int bit = (b >> (2 * ng)) & 3;
  if (bit <= 1) {
    return bit_get(4 * same + 0) ? 1 : -1; 
  } else {
    return bit_get(4 * same + 3) ? -1 : 1;
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...