Submission #1271896

#TimeUsernameProblemLanguageResultExecution timeMemory
1271896AvianshThe Big Prize (IOI17_prize)C++20
20 / 100
23 ms416 KiB
#include "prize.h" #include <bits/stdc++.h> using namespace std; int find_best(int n) { int cutoff = 0; int lef = 0; int ind = -1; for(int i = 0; i < min(n,500); i++) { vector<int> res = ask(i); if(res[0] + res[1] == 0) return i; if(cutoff<res[0]+res[1]) { cutoff=res[0]+res[1]; ind=i; lef=res[0]; } } bool val[n]; fill(val,val+n,0); int cn = 0; while(1){ int lo = ind; int hi = min(n-1,lo+512); while(lo<hi){ int mid = (lo+hi+1)/2; vector<int>res = ask(mid); if(res[0]+res[1]==0){ return mid; } if(res[0]==lef&&res[0]+res[1]==cutoff){ lo=mid; } else{ hi=mid-1; } } fill(val+ind,val+lo+1,1); ind=lo+1; vector<int>res = ask(ind); cutoff = res[0]+res[1]; lef=res[0]; if(ind==n){ break; } } return -1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...