Submission #735842

#TimeUsernameProblemLanguageResultExecution timeMemory
735842Abrar_Al_SamitGap (APIO16_gap)C++17
38.81 / 100
676 ms1872 KiB
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;

long long findGap(int T, int N) {
	long long a[N+1];
	if(T==1) {
		int l = 1, r = N;

		long long lef = 0, rit = 1e18;
		while(l<=r) {
			MinMax(lef, rit, &lef, &rit);
			if(l==r) {
				a[l] = lef;
				break;
			} else {
				a[l] = lef, a[r] = rit;
				++lef, --rit;
				++l, --r;
			}
		}

		long long best = 0;
		for(int i=2; i<=N; ++i) {
			best = max(best, a[i] - a[i-1]);
		}
		return best;
	} else {
		long long lef = 0;
		int p = 1;

		while(p<=N) {
			long long pw = 1;
			while(1) {
				long long rit = min((long long)1e18, pw+lef-1);

				long long var1, var2;
				MinMax(lef, rit, &var1, &var2);
				if(var1==-1) {
					pw *= 2;
				} else {
					a[p] = var1; ++p;
					lef = var1 + 1;
					break;
				}
			}
		}
		long long best = 0;
		for(int i=2; i<=N; ++i) {
			best = max(best, a[i] - a[i-1]);
		}
		return best;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...