# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
764389 | Ahmed57 | Gap (APIO16_gap) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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;
long long start = mn;
long long la = mn;
while(start<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;
}