Submission #1024396

#TimeUsernameProblemLanguageResultExecution timeMemory
1024396HappyCapybaraThe Big Prize (IOI17_prize)C++17
90 / 100
60 ms432 KiB
#include "prize.h"
#include<bits/stdc++.h>
using namespace std;

int find_best(int n){
	if (n <= 500){
		for (int i=0; i<n; i++){
			vector<int> res = ask(i);
			if (res[0]+res[1] == 0) return i;
		}
	}
	int k = 0, j = 0;
	for (int i=0; i<500; i++){
		vector<int> res = ask(i);
		if (res[0]+res[1] == 0) return i;
		if (res[0]+res[1] > k){
			k = res[0]+res[1];
			j = i;
		}
		if (res[0]+res[1] < k) j++;
	}
	int l = 499;
	while (j != k){
		l++;
		int r = n;
		while (l != r-1){
			int m = (l+r)/2;
			vector<int> res = ask(m);
			if (res[0]+res[1] == 0) return m;
			if (res[0]+res[1] == k){
				if (res[0] > j) r = m;
				else l = m;
			}
			else r = m;
		}
		j++;
	}
}

Compilation message (stderr)

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