Submission #560785

#TimeUsernameProblemLanguageResultExecution timeMemory
560785abcvuitunggioGap (APIO16_gap)C++17
43.80 / 100
111 ms1984 KiB
#include "gap.h"
#include <bits/stdc++.h>
using namespace std;
long long f(long long l, long long r){
    if (l>=r)
        return -1;
    long long mn,mx,mn2,mx2,mid=(l+r)>>1;
    MinMax(l,mid,&mn,&mx);
    if (mn==-1)
        return f(mid+1,r);
    MinMax(mid+1,r,&mn2,&mx2);
    if (mn2==-1)
        return f(mn,mx);
    return max(max(mn2-mx,f(mn,mx)),f(mn2,mx2));
}
long long findGap(int T, int N)
{
    long long a[N],lo=0,hi=1000000000000000000,res=0;
    if (T==1){
        for (int i=0;i<N&&i<=N-i-1;i++){
            MinMax(lo,hi,&a[i],&a[N-i-1]);
            lo=a[i]+1;
            hi=a[N-i-1]-1;
        }
        for (long long i=0;i<N-1;i++)
            res=max(res,a[i+1]-a[i]);
        return res;
    }
    return f(lo,hi);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...