#include "grader.h"
#include <iostream>
const int T_SAME = 0;
const int T_HOTTER = +1;
// const int T_COLDER = -1;
int solve(int l, int r, int a) {
if (l == r)
return r;
int b = std::max(l, std::min(r, l + r - a));
if (b == a and a + 1 <= r)
b = a + 1;
if (b == a and a - 1 <= r)
b = a - 1;
int g = Guess(b);
/*
if (r - l == 1) {
if (g == T_HOTTER)
return b;
return a;
}
*/
int m = (a + b) / 2;
if (g == T_SAME)
return m;
if ((g == T_HOTTER) xor (b < a))
// x* nearer to the right boundary
return solve(m + 1, r, b);
else
// x* nearer to the left boundary
return solve(l, m, b);
}
int HC(int N){
int sta = (N + 3) / 4;
Guess(sta);
return solve(1, N, sta);
}