#include<bits/stdc++.h>
#include "prize.h"
using namespace std;
int ans , ek , dui , boro , aag , por , hereone , heretwo;
vector<int> chek;
void getans( int aage , int pore , int bam , int dan ) {
if( ans == -1 ) {
int mid = ( bam + dan ) / 2;
for( int z = mid; z > bam; z-- ) {
chek = ask(z);
if( chek[0] + chek[1] == 0 ) ans = z;
else if( chek[0] + chek[1] == boro ) {
if( chek[0] > aage ) {
cerr << aage << " " << chek[0] << " " << bam << " " << z << "\n";
getans( aage , chek[0] , bam , z );
}
z = -10;
}
}
for( int z = mid + 1; z < dan; z++ ) {
chek = ask(z);
if( chek[0] + chek[1] == 0 ) ans = z;
else if( chek[0] + chek[1] == boro ) {
if( chek[0] < pore ) {
cerr << chek[0] << " " << pore << " " << z << " " << dan << "\n";
getans( chek[0] , pore , z , dan );
}
z = dan + 1;
}
}
}
}
int find_best(int n) {
ans = -1;
boro = 0;
for( int z = n - 1; z >= max(0 , n - 480 ); z-- ) {
//cerr << z << "\n";
chek = ask(z);
if( chek[0] + chek[1] == 0 ) ans = z;
else if( chek[0] + chek[1] > boro ) {
por = chek[0];
heretwo = z;
boro = chek[0] + chek[1];
}
}
//cerr << por << " " << heretwo << "\n";
if( n > 1 ) getans( 0 , por , -1 , heretwo );
//cerr << "lmao" << "\n";
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |