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 "prize.h"
#include <bits/stdc++.h>
using namespace std;
/*********************************************************************************************************************/
int find_best(int n) {
int curtotal = -1;
for(int i =0; i<10; i++){
vector<int> res= ask(n/10 *i);
if( !res[0] && !res[1]) return n/10 *i;
curtotal = max(curtotal,res[0] +res[1]);
}
//cout <<":"<<curtotal<<endl;
set<int> targets;
for(int i =1; i<=curtotal; i++){
targets.insert(i);
}
int left = 0, right = n-1;
int target = *targets.begin();
while(true){
int ind = (left +right) /2 ;
vector<int> res = ask(ind);
if(res[0] + res[1] == 0)
return ind;
if(res[0] + res[1] < curtotal){
ind++;
continue;
}
if(res[0] < target){
left = ind +1;
}
else{
right = ind - 1;
}
}
return 0;
}
/*********************************************************************************************************************/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |