#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;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
44 ms |
1284 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
42 ms |
1276 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
42 ms |
1276 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1140 ms |
8124 KB |
Output is partially correct - alpha = 0.105263157895 |