Submission #110742

#TimeUsernameProblemLanguageResultExecution timeMemory
110742TAISA_Gap (APIO16_gap)C++14
0 / 100
62 ms1784 KiB
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
using ll = long long;
/*void MinMax(ll l, ll r, ll& mi, ll& ma) {
    cout << l << " " << r << endl;
    cin >> mi >> ma;
}*/
ll findGap(int T, int n) {
  ll N=n;
    ll mi, ma;
    ll INF = 100000000000000000LL;
    MinMax(0LL, INF, &mi, &ma);
    if(N == ma - mi + 1LL) {
        return 1LL;
    }
    ll l = (ma - mi + 1LL) / (N + 1LL) + 1LL, m = (ma - mi + 1LL) % (N + 1LL);
    ll b = mi, res = 0, t = mi, s = 0;
    bool f = false;
    for(int i = 0; i < N + 1; i++) {
        ll nl = l - (i >= m);
        MinMax(t, t + nl - 1LL, &mi, &ma);
        if(mi == -1) {
            if(f) {
                s += nl;
            } else {
                s += nl + (t - b);
                f = true;
            }
        } else {
            if(f) {
                s += mi - t;
                res = max(res, s);
                s = 0;
                f = false;
            }
            b = ma;
        }
        t += nl;
    }
    return res;
}
/*int main() {
    cout << findGap(0, 4) << endl;
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...