제출 #967738

#제출 시각아이디문제언어결과실행 시간메모리
967738TAhmed33Gap (APIO16_gap)C++98
0 / 100
42 ms5412 KiB
#include <bits/stdc++.h>
#include "gap.h"
//#include "grader.cpp"
using namespace std;
typedef long long ll;
const ll inf = 1e18;
vector <ll> a;
ll ans = 0;
pair <ll, ll> ask (ll l, ll r) {
	assert(l <= r);
	ll mn = l, mx = r;
	MinMax(l, r, &mn, &mx);
	return {mn, mx};
}
void recurse (ll l, ll r) {
	if (l == r) {
		return;
	}
	ll mid = (l + r) / 2;
	auto g = ask(l + 1, mid);
	if (g.first != -1) recurse(g.first, g.second);
	auto h = ask(mid + 1, r - 1);
	if (h.first != -1) recurse(h.first, h.second);
	if (g.second != -1 && h.first != -1) ans = max(ans, h.first - g.second);
	if (g.first != -1) ans = max(ans, g.first - l);
	if (h.second != -1) ans = max(ans, r - h.second);
	if (g.first == -1 && h.first == -1) ans = max(ans, r - l);
}
ll findGap (int t, int n) {
	a.clear(); ans = 0;
	auto g = ask(0, inf);
	recurse(g.first, g.second);
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...