Submission #764400

#TimeUsernameProblemLanguageResultExecution timeMemory
764400Ahmed57Gap (APIO16_gap)C++17
30 / 100
60 ms1112 KiB
#include "gap.h"
#include <bits/stdc++.h>
using namespace std;
long long INF = 1e18;
long long findGap(int T,int N){
    long long mn ,mx;
    MinMax(0,INF,&mn,&mx);
    if(N==2)return (mx-mn);
    if(T==1){
        long long all= 0;
        for(int i = 0;i<(N-1)/2;i++){
            long long mn2 , mx2;
            MinMax(mn+1,mx-1,&mn2,&mx2);
            all = max(all,mn2-mn);
            all = max(all,mx-mx2);
            swap(mn,mn2);swap(mx,mx2);
        }
        all = max(all,mx-mn);
        return all;
    }
    long long diff = (mx-mn+(N-1))/N;
    long long ans = diff;
    diff++;
    long long start = mn;
    long long la = mn;
    while(start+diff<mx){
        long long l = start+1 , r = start+diff;
        long long mn2 , mx2 ;
        MinMax(l,r,&mn2,&mx2);
        if(mn2!=-1){
            ans = max(ans,mn2-la);
            la = mx2;
            start = mx2;
        }else{
            start+=diff;
        }
    }
    return ans;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...