# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1181002 | hamzabc | Hotter Colder (IOI10_hottercolder) | C++20 | 0 ms | 0 KiB |
#include "grader.h"
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;
}