Submission #410089

#TimeUsernameProblemLanguageResultExecution timeMemory
410089dreezyThe Big Prize (IOI17_prize)C++17
20 / 100
120 ms292 KiB
#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, 0); int cnt =0; while(true){ int ind = (left +right) /2 ; //cout << left <<", "<<ind<<", "<<right<<": "<<target<<" "<<curtotal<<endl; vector<int> res = ask(ind); vis[ind] = true; 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; vis[ind] = true; numvis++; --ind; //cout <<ind<<":"<<endl; if(ind <0){ target = res[0]+numvis+1; break; } if(vis[ind]) { target = res[0]+numvis+1; break; } res = ask(ind); } if(res[0] + res[1] == curtotal){ target = max(res[0]+ numvis +1, target +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; } /*********************************************************************************************************************/

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:20:6: warning: unused variable 'cnt' [-Wunused-variable]
   20 |  int cnt =0;
      |      ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...