#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]);
}
int left = 0, right = n-1;
int target =1;
vector<bool> vis(n);
int cnt =0;
while(true){
int ind = (left +right) /2 ;
//cout << left <<", "<<ind<<", "<<right<<": "<<target<<" "<<curtotal<<endl;
vector<int> res = ask(ind);
if(res[0] + res[1] == 0)
return ind;
if(res[0] + res[1] < curtotal){
int numvis = 1;
res = ask(--ind);
while(res[0]+ res[1] < curtotal){
if(res[0] + res[1] == 0)
return ind;
numvis++;
--ind;
//cout <<ind<<":"<<endl;
if(ind <0){
target += numvis;
break;
}
if(vis[ind])
{
target+= numvis;
break;
}
res = ask(ind);
}
if(res[0] + res[1] == curtotal){
target += res[0]+ numvis +1;
left = ind+1;
right = n-1;
}
}
if(res[0] < target){
left = ind +1;
}
else{
right = ind - 1;
}
cnt++;
if(cnt >=20) break;
}
return 0;
}
/*********************************************************************************************************************/
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
200 KB |
Output is correct |
2 |
Correct |
1 ms |
200 KB |
Output is correct |
3 |
Correct |
1 ms |
276 KB |
Output is correct |
4 |
Correct |
1 ms |
280 KB |
Output is correct |
5 |
Correct |
1 ms |
284 KB |
Output is correct |
6 |
Correct |
1 ms |
200 KB |
Output is correct |
7 |
Correct |
1 ms |
288 KB |
Output is correct |
8 |
Correct |
1 ms |
200 KB |
Output is correct |
9 |
Correct |
1 ms |
276 KB |
Output is correct |
10 |
Correct |
1 ms |
200 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
288 KB |
Output is correct |
2 |
Correct |
1 ms |
284 KB |
Output is correct |
3 |
Correct |
1 ms |
276 KB |
Output is correct |
4 |
Correct |
1 ms |
284 KB |
Output is correct |
5 |
Correct |
1 ms |
200 KB |
Output is correct |
6 |
Correct |
1 ms |
284 KB |
Output is correct |
7 |
Correct |
1 ms |
280 KB |
Output is correct |
8 |
Correct |
1 ms |
280 KB |
Output is correct |
9 |
Correct |
1 ms |
200 KB |
Output is correct |
10 |
Correct |
1 ms |
200 KB |
Output is correct |
11 |
Incorrect |
1 ms |
200 KB |
answer is not correct |
12 |
Halted |
0 ms |
0 KB |
- |