Submission #1055349

#TimeUsernameProblemLanguageResultExecution timeMemory
1055349phoenixThe Big Prize (IOI17_prize)C++17
20 / 100
61 ms5464 KiB
#include "prize.h"
#include <bits/stdc++.h>

using namespace std;

const int N = 200200;

vector<int> arr[N];

vector<int> ASK(int p) {
	if (arr[p].empty())
		arr[p] = ask(p);
	return arr[p];	
}

int find_best(int n) {
	int i = 0;
	while (i < n) {
		int l = i, r = n;
		if (ASK(l)[0] + ASK(l)[1] == 0) {
			return l;
		}
		while (r - l > 1) {
			int m = (l + r) / 2;
			if (ASK(m) == ASK(l))
				l = m;
			else {
				if (ASK(m)[0] + ASK(m)[1] == 0) 
					return m;
				r = m;
			} 
		}
		i = r;
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...