제출 #42854

#제출 시각아이디문제언어결과실행 시간메모리
42854fefeGap (APIO16_gap)C++14
78.54 / 100
95 ms1516 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++;
	while(ps!=pe){
		y=ps;
		while(1){
			f(y+1,y+x,&s,&e);
			if(s!=-1)	break;
			y+=x;
		}
		maxx=max(maxx,s-ps);
		ps=e;
	}
	return maxx;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...