Submission #1224807

#TimeUsernameProblemLanguageResultExecution timeMemory
1224807walizamaneeThe Big Prize (IOI17_prize)C++20
90 / 100
27 ms408 KiB
#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 ) { 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 = -1; } } 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 = 0; z < min(480 , n); z++ ) { chek = ask(z); if( chek[0] + chek[1] == 0 ) ans = z; else{ if( chek[0] + chek[1] > boro ) { aag = chek[0]; //dan = chek[1]; hereone = z; boro = chek[0] + chek[1]; } } } for( int z = n - 1; z > 0; z-- ) { chek = ask(z); if( chek[0] + chek[1] == 0 ) ans = z; else{ if( chek[0] + chek[1] == boro ) { por = chek[0]; heretwo = z; z = -1;; } } } cerr << aag << " " << por << " " << hereone << " " << heretwo << "\n"; if( n > 1 ) getans( aag , por , hereone , heretwo ); cerr << "lmao" << "\n"; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...