# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1146122 | Khalid_Alabdullatif | Gap (APIO16_gap) | C++17 | 0 ms | 0 KiB |
#include "gap.h"
#include <bits/stdc++.h>
#define ll long long
using namespace std;
long long findGap(int T, int N)
{
ll mn,mx,n=N;
MinMax(0,1e18,&mn,&mx);
ll l=mn,r=mx;
if(T==1){
ll ans=0,cnt=1;
while(l+1<=r-1 && cnt<(n+1)/2{
MinMax(l+1,r-1,&mn,&mx);
if(mx==-1){
ans=max(r-l,ans);
break;
}
ans=max({ans,mn-l,r-mx});
l=mn,r=mx;
cnt++;
}
ans=max(ans,r-l);
return ans;
}
ll block=(r-l-1)/(n-1)+1;
ll ans=0,last=mn;
for(ll i=mn;i<r;i+=block){
MinMax(i+1,i+block,&mn,&mx);
if(mx!=-1)
ans=max(max(ans,mn-last),mx-mn),last=mx;
}
return ans;
}