이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "grader.h"
int rand() {
static std::default_random_engine gen(std::chrono::system_clock::now().time_since_epoch().count());
static std::uniform_int_distribution<int> rng(0, 1);
return rng(gen);
}
int HC(int N) {
int l = 1, r = N, x = 1;
Guess(x);
while (l < r) {
if (rand()) {
if (x == l) {
const int t = Guess(r);
x = r;
if (t == 0) return (l + r) / 2;
else if (t == 1) l = (l + r) / 2 + 1;
else r = (l + r - 1) / 2;
} else {
if (x != r) {
Guess(r);
}
const int t = Guess(l);
x = l;
if (t == 0) return (l + r) / 2;
else if (t == 1) r = (l + r - 1) / 2;
else l = (l + r) / 2 + 1;
}
} else {
if (x == r) {
const int t = Guess(l);
x = l;
if (t == 0) return (l + r) / 2;
else if (t == 1) r = (l + r - 1) / 2;
else l = (l + r) / 2 + 1;
} else {
if (x != l) {
Guess(l);
}
const int t = Guess(r);
x = r;
if (t == 0) return (l + r) / 2;
else if (t == 1) l = (l + r) / 2 + 1;
else r = (l + r - 1) / 2;
}
}
}
return l;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |