Submission #283253

#TimeUsernameProblemLanguageResultExecution timeMemory
283253MKopchevThe Big Prize (IOI17_prize)C++14
100 / 100
58 ms384 KiB
#include "prize.h"
#include<bits/stdc++.h>
using namespace std;

int ret=-1;
/*
vector<int> ask(int pos)
{
    cout<<pos<<" -> ";

    vector<int> cur={0,0};

    for(int i=0;i<2;i++)cin>>cur[i];

    return cur;
}
*/
vector<int> my_ask(int pos)
{
    vector<int> cur=ask(pos);

    if(cur[0]+cur[1]==0)ret=pos;

    return cur;
}

void solve(int l,vector<int> arr_l,int r,vector<int> arr_r)
{
    if(ret!=-1)return;

    if(arr_l[0]==arr_r[0]&&arr_l[1]==arr_r[1])return;

    if(r-l<=1)return;

    int av=(l+r)/2;

    vector<int> arr_av=my_ask(av);

    if(arr_l[0]+1==arr_r[0]&&arr_r[1]+1==arr_l[1]&&arr_l[0]+arr_l[1]>arr_av[0]+arr_av[1])return;

    solve(l,arr_l,av,arr_av);
    solve(av,arr_av,r,arr_r);
}
int find_best(int n)
{
    ret=-1;

    solve(0,my_ask(0),n-1,my_ask(n-1));

    return ret;
}
/*
int main()
{
    cout<<find_best(8)<<endl;
}
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...