//#pragma once
//#include "grader.cpp"
#include "prize.h"
#include <bits/stdc++.h>
using namespace std;
mt19937 mt(time(nullptr));
int sum,lamp,n,num=20;
void prec()
{
    vector<int>a;
    for(int i=1; i<=20; i++)
    {
        a=(ask(mt()%n));
        sum=max(sum,a[0]+a[1]);
    }
}
void rec(int l,int r,int br,int exl,int exr)
{
    if(lamp||!br||l>r)return;
    int mid=(l+r)/2,ad=1;
    vector<int>a;
    while(true)
    {
        num++;
        if(num>=9995)
        {
            lamp=20000000;
            return;
        }
        a=ask(mid-1);
        if(a[0]+a[1]==0)
        {
            lamp=mid;
            return;
        }
        if(a[0]+a[1]==sum)break;
        mid+=ad;
        if(mid>r||a[1]==0)
        {
            mid=(l+r)/2-1;
            ad=-1;
            if(mid<l)return;
            continue;
        }
        if(mid<l||a[0]==0)return;
    }
    int dist=abs(mid-(l+r)/2);
    if(mid>=(l+r)/2)
    {
        rec(l,(l+r)/2-1,a[0]-exl-dist,exl,a[1]+dist);
        rec(mid+1,r,a[1]-exr,a[0],exr);
    }
    else
    {
        rec(l,mid-1,a[0]-exl,exl,a[1]);
    }
}
int find_best(int N)
{
    n=N;
    prec();
    rec(1,n,sum,0,0);
    return lamp-1;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |