Submission #1361004

#TimeUsernameProblemLanguageResultExecution timeMemory
1361004AMel0nGap (APIO16_gap)C++20
0 / 100
52 ms11240 KiB
#include "gap.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define I signed
set<int> A;
void solve(int l, int r) {
	int *mn = new int, *mx = new int; MinMax(l, r, mn, mx);
	// cout << l << ' ' << r << ' ' << *mn << ' ' << *mx << endl;
	A.insert(*mn), A.insert(*mx);
	if (*mx - *mn <= 1) return ;
	solve(*mn+1, (*mn+*mx)/2);
	solve((*mn+*mx)/2+1, *mx-1);
}
int findGap(I T, I N) {
	int *mn = new int, *mx = new int; MinMax(0, 1e18, mn, mx);
	A.insert(*mn), A.insert(*mx);
	solve(*mn+1, (*mn+*mx)/2);
	solve((*mn+*mx)/2+1, *mx-1);
	if (A.count(-1)) A.erase(-1);
	int res = 0;
	for(auto it = ++A.begin(); it != A.end(); it++) res = max(res, *it - *prev(it));
	return res;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...