Submission #1350707

#TimeUsernameProblemLanguageResultExecution timeMemory
1350707the_commando_xGap (APIO16_gap)C++17
100 / 100
27 ms1212 KiB
#include "gap.h"

#include <bits/stdc++.h>

long long findGap(int T, int N)
{

	long long MN, MX;
	MinMax(0, 1e18 + 1, &MN, &MX);

	long long best = 0;
	if (T == 1)
	{
		for (int i = 1; i < (N + 1) / 2; ++i)
		{
			long long a, b;
			MinMax(MN + 1, MX - 1, &a, &b);
			best = std::max({best, a - MN, MX - b});
			MN = a, MX = b;
		}
		best = std::max(best, MX - MN);
		return best;
	}

    const long long STEP = (MX - MN + N - 2) / (N - 1);

    long long prev = MN;
    for (long long L = MN + 1; L <= MX - 1; L += STEP)
    {
        long long R = std::min(L + STEP - 1, MX - 1);

        long long a, b;
        MinMax(L, R, &a, &b);

        if (a == -1) continue;

        best = std::max(best, a - prev);
        prev = b;
    }

    best = std::max(best, MX - prev);

	return best;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...