제출 #102463

#제출 시각아이디문제언어결과실행 시간메모리
102463Nicholas_PatrickGap (APIO16_gap)C++17
0 / 100
101 ms5896 KiB
#include "gap.h"
#include <set>
using namespace std;

long long findGap(int t, int n){
	set <long long> numbers;
	long long m, M;
	if(t==1){
		m=0;
		M=1000000000000000000;
		while(true){
			MinMax(m, M, &m, &M);
			if(m==-1)
				break;
			numbers.insert(m);
			if(m==M)
				break;
			numbers.insert(M);
			m++;M--;
		}
	}else if(t==2){
		for(int i = 0;i < n>>1;i ++){
			m=(long double)i*1e18/(n>>1);
			if(i==(n>>1)-1)
				M=1000000000000000000;
			else
				M=(long double)(i+1)*1e18/(n>>1)-1;
			while(true){
				MinMax(m, M, &m, &M);
				if(m==-1)
					break;
				numbers.insert(m);
				if(m==M)
					break;
				numbers.insert(M);
				m++;M--;
			}
		}
	}
	m=0;
	set <long long>::iterator it=numbers.begin();
	M=*it;
	while(++it!=numbers.end()){
		m=max(m, *it-M);
		M=*it;
	}
	return m;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...