Submission #530863

# Submission time Handle Problem Language Result Execution time Memory
530863 2022-02-27T02:30:29 Z KoD cmp (balkan11_cmp) C++17
100 / 100
1770 ms 102192 KB
#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 time Memory Grader output
1 Correct 1770 ms 102192 KB Output is correct - maxAccess = 10, score = 100