#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#define ll long long
using namespace std;
double a[100010];
int n,s,t;
bool check(double number)
{
double max_average;
ll q[100010];
int head=1,tail=0;
for(int i=1;i<=n;i++)
{
while(head<=tail&&a[q[tail]]>=a[i]) tail--;
q[++tail]=i;
while(head<=tail&&i-1-q[head]>=t&&i-1-q[head]>=s) head++;
max_average=max(max_average,1.0*(a[i]-a[q[head]])/(i-q[head]+1));
}
if(max_average>=number) return true;
else return false;
}
double bin_search(double l,double r)
{
double eps=1e-5;
double ans=-1e9;
while(r-l>eps)
{
double mid=(l+r)/2;
if(check(mid))
{
ans=mid;
l=mid;
}
else r=mid;
}
return ans;
}
void solve()
{
double minn=1e9;
cin>>n>>s>>t;
for(int i=1;i<=n;i++) cin>>a[i],minn=min(minn,a[i]);
for(int i=1;i<=n;i++) a[i]=a[i-1]+a[i];
printf("%.3lf",bin_search(minn,1e5));
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int t=1;
while(t--) solve();
return 0;
}