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 <bits/stdc++.h>
#include "prize.h"
using namespace std;
int ans = -1, num;
void bin(int l, int r, int sl, int sr){
for(int i = l; i <= r; i ++){
int mid = (i + r) / 2;
vector<int> k = ask(mid);
//cout << "//" << mid << " " << l << " " << r << " " << k[0] << " " << k[1] << " " << sl << " " << sr <<endl;
if(k[0] + k[1] == 0){
ans = mid;
return;
}
if(num == k[0] + k[1]){
if(k[0] - sl > 0)bin(l, mid - 1, sl, k[1]);
if(k[1] - sr > 0)bin(mid + 1, r, k[0],sr);
break;
}
}
}
int find_best(int N){
int l = 0;
vector<int> t = {0, 0};
for(int i = 0; i < min(N, 500); i ++){
auto k = ask(i);
if(k[0] + k[1] > t[0] + t[1]){
num = k[0] + k[1];
t = k;
l = i;
}
if(k[0] + k[1] == 0){
return i;
}
}
bin(l, N-1, l, 0);
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |