제출 #378446

#제출 시각아이디문제언어결과실행 시간메모리
378446rainboyGap (APIO16_gap)C11
100 / 100
61 ms1260 KiB
#include "gap.h"

#define A	1000000000000000000

long long max(long long a, long long b) { return a > b ? a : b; }

long long findGap(int t, int n) {
	long long ans;

	if (t == 1) {
		long long l, r;
		int i;

		MinMax(0, A, &l, &r);
		ans = 0;
		for (i = 0; i < (n - 1) / 2; i++) {
			long long l_, r_;

			MinMax(l + 1, r - 1, &l_, &r_);
			ans = max(ans, max(l_ - l, r - r_));
			l = l_, r = r_;
		}
		if (n % 2 == 0)
			ans = max(ans, r - l);
	} else {
		long long lower, upper, b, a, a_, l, r;

		MinMax(0, A, &lower, &upper);
		b = (upper - lower + n - 2) / (n - 1) + 1;
		ans = b - 1, a_ = -1;
		for (a = lower; a <= upper; a += b) {
			MinMax(a, a + b - 1, &l, &r);
			if (a_ == -1)
				a_ = r;
			else if (r != -1)
				ans = max(ans, l - a_), a_ = r;
		}
	}
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...