#include <bits/stdc++.h>
using namespace std;
int n,S,T;
double a[100010],s[100010];
int f(double mid){
s[0]=0;
for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i];
deque<int> q;
for(int i=1;i<=n;i++){
if(i>=S){
while(!q.empty()&&s[i-S]<s[q.back()]) q.pop_back();
q.push_back(i-S);
}
if(!q.empty()&&q.front()<i-T) q.pop_front();
if(!q.empty()&&s[i]-s[q.front()]>=mid*(i-q.front())) return 1;
}
return 0;
}
int main(){
cin>>n>>S>>T;
double minv=INT_MAX,maxv=INT_MIN;
for(int i=1;i<=n;i++){
cin>>a[i];
minv=min(minv,a[i]);
maxv=max(maxv,a[i]);
}
double l=minv,r=maxv;
while(r-l>1e-5){
double mid=(l+r)/2;
if(f(mid)) l=mid;
else r=mid;
}
printf("%.3lf",l);
return 0;
}