# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
265181 | Toirov_Sadi | Hotter Colder (IOI10_hottercolder) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
int rec(int l, int r, int last){
if(l == r) return l;
int m = (l + r) >> 1;
if(m == last && m > l) m --;
else if(m == last) m ++;
int x = Guess(m);
if(x == 0){
return (m + last) / 2;
}
if(x == 1){
if(m <= last) return rec(l, min((m + last - 1) / 2, r), m);
else return rec(max(l, (m + last) / 2 + 1), r, m);
}
if(x == -1){
if(m <= last) return rec(max(l, (m + last) / 2 + 1), r, m);
else return rec(l, min((last + m - 1) / 2, r), m);
}
}
int HC(int N){
if(N == 1) return 1;
Guess(N / 2);
return rec(1, N, N / 2);
}