제출 #560779

#제출 시각아이디문제언어결과실행 시간메모리
560779Tien_NoobGap (APIO16_gap)C++17
100 / 100
55 ms1864 KiB
//Make CSP great again
//Vengeance
#include <bits/stdc++.h>
#include "gap.h"
#define TASK "TESTCODE"
#define Log2(x) 31 - __builtin_clz(x)
using namespace std;
const int N = 1e5;
long long a[N + 2];
long long findGap(int t, int n)
{
    if (t == 1)
    {
        a[0] = -1;
        a[n + 1] = 2e18 + 1;
        for (int i = 1, j = n; i <= j; ++ i, -- j)
        {
            MinMax(a[i - 1] + 1, a[j + 1] - 1, &a[i], &a[j]);
        }
        long long res = 0;
        for (int i = 2; i <= n; ++ i)
        {
            res = max(res, a[i] - a[i - 1]);
        }
        return res;
    }
    long long res = 0;
    long long mn, mx;
    MinMax(0, 1e18, &mn, &mx);
    long long maxPre = -1;
    long long tmn, tmx;
    tmn = mn;
    tmx = mx;
    if (n == 2)
    {
        return mx - mn;
    }
    --n;
    for (long long l = tmn; l < tmx; l += (tmx - tmn)/n + 1)
    {
        MinMax(l, l + (tmx - tmn)/n, &mn, &mx);
        if (mn == -1)
        {
            continue;
        }
        if (maxPre != -1)
        {
            res = max(res, mn - maxPre);
        }
        maxPre = mx;
    }
    return res;
}
/*void read()
{

}
void solve()
{

}
int  main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    if (fopen(TASK".INP", "r"))
    {
        freopen(TASK".INP", "r", stdin);
        //freopen(TASK".OUT", "w", stdout);
    }
    int t = 1;
    bool typetest = false;
    if (typetest)
    {
        cin >> t;
    }
    for (int __ = 1; __ <= t; ++ __)
    {
        //cout << "Case " << __ << ": ";
        read();
        solve();
    }
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...