Submission #814695

#TimeUsernameProblemLanguageResultExecution timeMemory
814695Dan4LifeThe Big Prize (IOI17_prize)C++17
20 / 100
71 ms360 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) {
	for(int _ = 0; _ < 500; _++){
		int l = 0, 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);
		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:24:1: warning: control reaches end of non-void function [-Wreturn-type]
   24 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...