#include "prize.h"
#include <bits/stdc++.h>
using namespace std;
map<int,vector<int>> mp;
vector<int> q(int i) {
if (mp.count(i)) return mp[i];
return mp[i] = ask(i);
}
int dfs(int l, int r, int pl, int pr) {
if (l > r) return -1;
int m = l+(r-l)/2;
vector<int> res = q(m);
int cl=res[0], cr=res[1];
if (!(cl+cr)) return m;
if (cl+cr < pl+pr) {
int ans = dfs(l,m-1,pl,cr);
if (ans != -1) return ans;
return dfs(m+1,r,cl,pr);
}
if (cl == pl) return dfs(m+1,r,cl,pr);
return dfs(l,m-1,pl,cr);
}
int find_best(int n) {
mp.clear();
vector<int> lres = q(0), rres = q(n-1);
if (!(lres[1]+lres[0])) return 0;
if (!(rres[0]+rres[1] == 0)) return n-1;
return dfs(1,n-2,lres[0],rres[1]);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |