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 solve1(int N)
{
long long L = 1 , R = 1e18 ;
vector<long long>v ;
while(N > 0)
{
long long x , y ;
MinMax(L , R , &x , &y) ;
if(x == -1)
break ;
N -= 2 ;
v.push_back(x) , v.push_back(y) ;
L = x+1 , R = y-1 ;
}
sort(v.begin() , v.end()) ;
long long ans = 0 ;
int sz = v.size() ;
for(int i = 1 ; i < sz ; ++i)
ans = max(ans , v[i] - v[i-1]) ;
return ans ;
}
long long solve2(int N)
{
long long L , R ;
MinMax(1 , 1e18 , &L , &R) ;
long long sz = (R-L+1 + N-1) / N ;
vector<long long>v ;
v.push_back(L) ;
for(long long i = L ; i < R ; i += sz)
{
long long l = max(i , L+1) , r = min(i+sz-1 , R-1) ;
if(l > r)
continue ;
long long x , y ;
MinMax(l , r , &x , &y) ;
if(x != -1 && y != -1)
v.push_back(x) , v.push_back(y) ;
}
v.push_back(R) ;
sz = v.size() ;
long long ans = 0 ;
for(int i = 1 ; i < sz ; ++i)
ans = max(ans , v[i] - v[i-1]) ;
return ans ;
}
long long findGap(int T, int N)
{
if(T == 1)
return solve1(N) ;
else
return solve2(N) ;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |