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>
typedef long long ll;
#define FOR(i,x,y) for(ll i=x; i<y; i++)
#define FORNEG(i,x,y) for(lli = x; i>y; i--)
using namespace std;
ll n;
map<ll,ll> sus;
ll cnt = 0;
ll idkman = -1;
int guess(ll a){
   if (a==0) return -1;
   if (a==n+1) return -1;
   cnt++;
   idkman = a;
   return  Guess(a);
}
int solve(int a, int b){
   ll lmao = rand()%2;
   // cout << a << " " << b << endl;
   if (a==b) return a;
   if (idkman == (a+b)/2){
      cout << "LMAO" << endl;
      ll mid = idkman;
      ll right = guess(idkman+1);
      if (right == -1){
         return solve(a, mid);
      }else{
         return solve(mid+1, b);
      }
   }
   else{
      if (lmao == 0){
         ll mid = (a+b)/2;
         ll midleft = (a+mid)/2;
         ll midright = (b+mid+1)/2;
         ll left, right;
         left = guess(midleft);
         right = guess(midright);
         if (right == 0 ){
            return (midleft+midright)/2;
         }
         else if (right == -1){
            if ((midleft+midright)%2==0)return solve(a, mid-1);
            else return solve(a,mid);
         }else{
            return solve(mid+1, b);
         }
      } else{
         ll mid = (a+b+1)/2;
         ll midleft = (a+mid)/2;
         ll midright = (b+mid+1)/2;
         ll left, right;
         right = guess(midright);
         left = guess(midleft);
         // cout << a << " " << b << " " << midleft << " " << midright << " " << left << " " << right << endl;
         if (left == 0 ){
            return (midleft+midright)/2;
         }
         else if (left == -1){
            if ((midleft+midright)%2==0) return solve(mid+1, b);
            else return solve(mid, b);
            
         }else{
            return solve(a, mid);
         }
      }
   }
}
int HC(int N){
   idkman = -1;
   srand(69420);
   sus.clear();
   n = N;
   cnt = 0;
   ll ans = solve(1,N);
   // cout << ans << " " << cnt << endl;
   return ans;
}
Compilation message (stderr)
hottercolder.cpp: In function 'int solve(int, int)':
hottercolder.cpp:46:13: warning: variable 'left' set but not used [-Wunused-but-set-variable]
   46 |          ll left, right;
      |             ^~~~
hottercolder.cpp:63:19: warning: variable 'right' set but not used [-Wunused-but-set-variable]
   63 |          ll left, right;
      |                   ^~~~~| # | 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... |