Submission #42855

#TimeUsernameProblemLanguageResultExecution timeMemory
42855fefeGap (APIO16_gap)C++14
100 / 100
70 ms1440 KiB
#include "gap.h"
#include<stack>
#include<stdio.h>
#define f MinMax
#define max(x,y) ((x)>(y)?(x):(y))
using namespace std;
long long findGap(int T, int N)
{
	long long s,e,ps,pe,maxx=0,x,y;
	if(T==1){
		f(0,(1LL<<62),&ps,&pe);
		N-=2;
		while(N>=2){
			f(ps+1,pe-1,&s,&e);
			N-=2;
			maxx=max(maxx,max(s-ps,pe-e));
			ps=s;pe=e;
		}
		if(N==1){
			f(ps+1,pe-1,&s,&e);
			return max(maxx,max(s-ps,pe-e));
		}
		return max(maxx,pe-ps);
	}
	f(0,(1LL<<62),&ps,&pe);
	x=(pe-ps)/N;
	if((pe-ps)%N)	x++;
	y=ps;
	while(ps!=pe){
		y=max(y,ps);
		while(1){
			f(y+1,y+x,&s,&e);
			y+=x;
			if(s!=-1)	break;
		}
		maxx=max(maxx,s-ps);
		x=max(x,maxx);
		ps=e;
	}
	return maxx;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...