이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "prize.h"
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
#define fi first
#define se second
#define mp make_pair
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
map<int,pii> res;
pii get(int x){
if(res.count(x)) return res[x];
vector<int> g = ask(x);
res[x] = mp(g[0], g[1]);
return mp(g[0],g[1]);
}
int n;
int solve(int li, int ri){
if(li > ri) return -1;
pii sa = get(li);
pii sb = get(ri);
if(sa.fi + sa.se == 0) return li;
if(sb.fi + sb.se == 0) return ri;
if(ri - li <= 1) return -1;
if(sa.fi + sa.se != sb.fi + sb.se){
if(sa.fi + sa.se > sb.fi + sb.se){
return solve(li, ri - 1);
}
else{
return solve(li + 1, ri);
}
}
if(sa.se - sb.se == 0){
return -1;
}
int mid = (li + ri) / 2;
int qa = solve(li, mid);
if(qa != -1) return qa;
return solve(mid + 1, ri);
}
int find_best(int _n) {
n = _n;
return solve(0, n - 1);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |