# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
224450 | jhnah917 | Hotter Colder (IOI10_hottercolder) | C++14 | 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.
#include "grader.h"
#include <bits/stdc++.h>
using namespace std;
int sub3(int N){
int l = 1, r = N;
while(l < r){
int m = l + r >> 1;
int a = Guess(l), b = Guess(r);
if(b == 1) l = m + 1;
else if(b == -1) r = l + r - 1 >> 1;
else return m;
}
return l;
}
int HC(int N){
if(N <= 500) return sub3(N);
int l = 1, r = N;
int prv = (l + l + r) / 3; guess(prv);
while(l < r){
int m1 = (l + l + r) / 3, m2 = (l + r + r) / 3;
int now = abs(prv - m1) < abs(prv - m2) ? m2 : m1;
int qry = Guess(qry);
if(qry == 1){
if(prv < now) l = max(l, prv + now + 1 >> 1);
else r = min(r, prv + now >> 1);
}else if(qry == -1){
if(prv < now) r = min(r, prv + now >> 1);
else l = max(l, prv + now + 1 >> 1);
}else return (prv + now >> 1);
}
return l;
}