#include "grader.h"
int max(int a, int b){
if (a > b)
return a;
return b;
}
int min(int a, int b){
if (a < b)
return a;
return b;
}
int HC(int N){
int l = 1, r = N, gl = (l + r - 1) >> 1, gr = gl + 2, k = 0;
Guess(gl);
int d = Guess(gr);
while (l != r){
if (d == 0){
return (gl + gr) >> 1;
}else if (d == 1){
if (k == 0){
r = (gl + gr - 1) / 2;
gl = max(l, l + r - gr);
d = Guess(gl);
}else{
l = (gl + gr) / 2 + 1;
gr = min(r, l + r - gl);
d = Guess(gr);
}
k = 1 - k;
}else{
if (k == 0){
l = (gl + gr) / 2 + 1;
if (gr == gl + 2)
gl = max(l, l + r - gr);
else{
gl = (l + r - 1) >> 1;
gr = gl + 2;
k = 1;
}
}else{
r = (gl + gr - 1) / 2;
if (gr == gl + 2)
gr = min(r, l + r - gl);
else{
gl = (l + r - 1) >> 1;
gr = gl + 2;
k = 1;
}
}
k = 1 - k;
}
}
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... |