Submission #875934

#TimeUsernameProblemLanguageResultExecution timeMemory
875934LoboGap (APIO16_gap)C++17
100 / 100
42 ms4048 KiB
#include "gap.h"
#include<bits/stdc++.h>
using namespace std;
#define int long long

int findGap(int32_t T, int32_t n)
{

	if(T == 1) {
		int mn,mx;
		vector<int> a(n+1);
		MinMax(0,(int) 1e18,&mn,&mx);
		a[1] = mn;
		a[n] = mx;
		int l = 2;
		int r = n-1;
		while(l <= r) {
			MinMax(a[l-1]+1,a[r+1]-1,&a[l],&a[r]);
			l++;
			r--;
		}

		int ans = 0;
		for(int i = 1; i <= n-1; i++) ans = max(ans, a[i+1]-a[i]);
		return ans;
		
	}
	else {

		int a1,an;
		MinMax(0,(int) 1e18,&a1,&an);

		int gap = (an-a1+n-1-1)/(n-1);
		int gap0 = gap;
		int ant = a1;
		for(int i = a1; i <= an; i+= gap0+1) {
			int mn,mx;
			MinMax(i,i+gap0,&mn,&mx);

			if(mn == -1) continue;
			gap = max(gap,mn-ant);
			ant = mx;
		}
		return gap;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...