Submission #814697

#TimeUsernameProblemLanguageResultExecution timeMemory
814697Dan4LifeThe Big Prize (IOI17_prize)C++17
20 / 100
78 ms936 KiB
#include "prize.h" #include <bits/stdc++.h> using namespace std; #define pb push_back const int mxN = (int)2e5+100; int fen[mxN]; void upd(int x, int v){for(++x; x<mxN; x+=x&-x)fen[x]+=v;} int sum(int x){int s=0;for(++x; x>0; x-=x&-x)s+=fen[x];return s;} int find_best(int n) { int pr = 0; for(int _ = 0; _ < 500; _++){ int l = pr, r = n-1; while(l<r){ int mid = (l+r)/2; auto a = ask(mid); if(a[0]+a[1]==0) return mid; if(a[0]-sum(mid-1))r=mid-1; else l=mid+1; } auto a = ask(l); pr = l+1; if(a[0]+a[1]==0) return l; if(a[0]!=sum(l)) upd(l,1); } }

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:25:1: warning: control reaches end of non-void function [-Wreturn-type]
   25 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...