이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "gap.h"
#define se second
#define fi first
using namespace std;
long long ans;
long double bb;
void func (long long L,long long R)
{
    long long mi1,ma1,mi2,ma2;
    long long mid=(L+R)/2;
    MinMax(L,mid,&mi1,&ma1);
    MinMax(mid,R,&mi2,&ma2);
    if (ma1==-1 && mi2==-1) {
        ans=max(ans,R-L);
        return;
    }
    if (ma1==-1) {
        ans=max(ans,mi2-L);
        return;
    }
    if (mi2==-1) {
        ans=max(ans,R-ma1);
        return;
    }
    if (ma1==L && mi2==R){
        ans=max(ans,R-L);
        return;
    }
    if (R-L==1){
        ans=max(ans,R-L);
        return;
    }
    if (ma1-L>ans && ma1-L>=bb)
        func(L,ma1);
    if (R-mi2>ans && R-mi2>=bb)
        func(mi2,R);
    if (mi2-ma1>ans && mi2-ma1>=bb)
        func (ma1,mi2);
}
long long findGap(int T, int N)
{
    int m=N;
    long long Mn,Mx;
    long long S=0;
    long long TT=1000000000000000000;
    MinMax(S,TT,&Mn,&Mx);
    if (m==2)
        return Mx-Mn;
    bb=((Mx-Mn)*1.0)/(((long long)(m-1))*1.0);
    ans=0;
    func (Mn,Mx);
    return ans;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |