#include <bits/stdc++.h>
using namespace std;
const int NMAX=1e6+5;
int n, a, b, dm, v[NMAX], f[NMAX];
void init_f()
{
for(int i=0;i<a;i++)
f[1+i]=1;
}
bool check(int x)
{
int j=1;
for(int i=a;i<=n;i++)
{
while(v[i]-v[j]>x)
j++;
f[1+i]=f[1+i-1];
if(j-1>i-a)
continue;
f[1+i]+=(f[1+i-a]-f[1+max(i-b, j-1)-1]>0);
}
return (f[1+n]==f[1+n-1]);
}
int caut_bin()
{
int r=-1, pas=(1<<19);
while(pas)
{
if(r+pas<=dm)
if(check(r+pas))
r+=pas;
pas/=2;
}
return r+1;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin>>n>>a>>b; init_f();
for(int i=1;i<=n;i++)
cin>>v[i];
sort(v+1, v+n+1);
v[n+1]=2*NMAX;
dm=v[n]-v[1];
cout<<caut_bin();
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |