Submission #249359

#TimeUsernameProblemLanguageResultExecution timeMemory
249359sahil_kGap (APIO16_gap)C++14
30 / 100
58 ms1272 KiB
#include "gap.h"
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
long long findGap (int t, int n) {
	if (t == 1) {
		long long mn, mx;
		MinMax(0, 1e18, &mn, &mx);
		long long p_mn = mn, p_mx = mx;
		long long ans = 0;
		for (int i=1; i<(n+1)/2; i++) {
			MinMax(p_mn+1, p_mx-1, &mn, &mx);
			ans = max(ans, mn-p_mn);
			ans = max(ans, p_mx-mx);
			p_mn = mn;
			p_mx = mx;
		}
		ans = max(ans, mx-mn);
		return ans;
	} else {
		long long mn, mx;
		MinMax(0, 1e18, &mn, &mx);
		if (n == 2) return mx-mn;
		long long sz = ceil((mx-mn-1)/(n-1));
		long long prev_mx = -1;
		long long ans = 0;
		for (long long i=mn+1; i<mx; i+=sz) {
			MinMax(i, i+sz, &mn, &mx);
			if (prev_mx > -1 && mn > -1) ans = max(ans, mn-prev_mx);
			if (mx > -1) prev_mx = mx;
		}
		return ans;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...