Submission #804728

#TimeUsernameProblemLanguageResultExecution timeMemory
804728BenmathThe Big Prize (IOI17_prize)C++14
90 / 100
78 ms336 KiB
/****************************************************************************** Online C++ Compiler. Code, Compile, Run and Debug C++ program online. Write your code in this editor and press "Run" button to compile and execute it. *******************************************************************************/ #include "prize.h" #include <bits/stdc++.h> using namespace std; int find_best(int n) { int maxi=0; if(n<10000){ for(int i=0;i<=(n-1);i++){ vector<int>res = ask(i); if((res[0]+res[1])==0){ return i; } } } for(int i=0;i<600;i++){ vector<int>res=ask(i); if((res[0]+res[1])==0){ return i; } if((res[0]+res[1])>maxi){ maxi=res[0]+res[1]; } } int tren=-1; int left=0; vector<int>res=ask(0); if((res[0]+res[1])<maxi){ tren=0; left++; }else{ int ans=n; int l=0; int r=n-1; while(l<=r){ int mid=(l+r)/2; vector<int>res=ask(mid); if((res[0]+res[1])==0){ return mid; } if((res[0]+res[1])<maxi){ ans=min(ans,mid); r=mid-1; }else{ if(res[0]>left){ r=mid-1; }else{ l=mid+1; } } } tren=ans; left++; } int t1=0; while(t1==0){ int ans=n; int l=tren+1; int r=n-1; while(l<=r){ int mid=(l+r)/2; vector<int>res=ask(mid); if((res[0]+res[1])==0){ return mid; } if((res[0]+res[1])<maxi){ ans=min(ans,mid); r=mid-1; }else{ if(res[0]>left){ r=mid-1; }else{ l=mid+1; } } } tren=ans; left++; } }

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:36:25: warning: control reaches end of non-void function [-Wreturn-type]
   36 |     vector<int>res=ask(0);
      |                         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...