#include <cstdio>
#include <cstring>
#include <deque>
#include <algorithm>
using namespace std;
typedef long long LL;
const LL INF = 1000000000000000007ll;
typedef pair<int,LL> PIL;
int n,m,l,r,a[100005];
LL dp[11][100005],sum[100005],pfx[100005];
PIL pt[11][100005];
bool gao(LL& num, LL& den){
for(int i=0;i<n;i++) sum[i+1]=sum[i]+a[i]*den-num;
for(int old=0;old<m;old++){
int now=1+old;
dp[now][0]=-INF;
deque<PIL> u;
for(int i=0;i<n;i++){
while(u.size() && i+1-u.front().first>r) u.pop_front();
int k=i+1-l;
if(k>=0 && dp[old][k]!=-INF){
LL tmp=dp[old][k]-sum[k];
while(u.size() && tmp>u.back().second) u.pop_back();
u.push_back(PIL(k,tmp));
}
dp[now][i+1]=dp[now][i];
pt[now][i+1]=pt[now][i];
if(u.size()){
int at=u.front().first;
LL tmp=u.front().second+sum[i+1];
if(tmp>dp[now][i+1]){
dp[now][i+1]=tmp;
pt[now][i+1]=pt[old][at];
pt[now][i+1].first+=i+1-at;
pt[now][i+1].second+=pfx[i+1]-pfx[at];
}
}
}
}
if(!dp[m][n]) return true;
num=pt[m][n].second;
den=pt[m][n].first;
return false;
}
LL floor(LL num, LL den){
if(num>=0) return num/den;
return -((-num+den-1)/den);
}
int main(){
while(scanf("%d%d%d%d",&n,&m,&l,&r)==4){
for(int i=0;i<n;i++){
scanf("%d",a+i);
pfx[i+1]=pfx[i]+a[i];
}
LL num=0,den=1;
while(den && !gao(num,den));
if(!den){
puts("-1");
}else{
LL ans=floor(num*100,den);
printf("%lld.%02lld\n",ans/100,abs(ans)%100);
}
}
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxkZXF1ZT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIExMOwpjb25zdCBMTCBJTkYgPSAxMDAwMDAwMDAwMDAwMDAwMDA3bGw7CnR5cGVkZWYgcGFpcjxpbnQsTEw+IFBJTDsKCmludCBuLG0sbCxyLGFbMTAwMDA1XTsKTEwgIGRwWzExXVsxMDAwMDVdLHN1bVsxMDAwMDVdLHBmeFsxMDAwMDVdOwpQSUwgcHRbMTFdWzEwMDAwNV07Cgpib29sIGdhbyhMTCYgbnVtLCBMTCYgZGVuKXsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspIHN1bVtpKzFdPXN1bVtpXSthW2ldKmRlbi1udW07CiAgICBmb3IoaW50IG9sZD0wO29sZDxtO29sZCsrKXsKICAgICAgICBpbnQgbm93PTErb2xkOwogICAgICAgIGRwW25vd11bMF09LUlORjsKICAgICAgICBkZXF1ZTxQSUw+IHU7CiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgICAgIHdoaWxlKHUuc2l6ZSgpICYmIGkrMS11LmZyb250KCkuZmlyc3Q+cikgdS5wb3BfZnJvbnQoKTsKICAgICAgICAgICAgaW50IGs9aSsxLWw7CiAgICAgICAgICAgIGlmKGs+PTAgJiYgZHBbb2xkXVtrXSE9LUlORil7CiAgICAgICAgICAgICAgICBMTCB0bXA9ZHBbb2xkXVtrXS1zdW1ba107CiAgICAgICAgICAgICAgICB3aGlsZSh1LnNpemUoKSAmJiB0bXA+dS5iYWNrKCkuc2Vjb25kKSB1LnBvcF9iYWNrKCk7CiAgICAgICAgICAgICAgICB1LnB1c2hfYmFjayhQSUwoayx0bXApKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkcFtub3ddW2krMV09ZHBbbm93XVtpXTsKICAgICAgICAgICAgcHRbbm93XVtpKzFdPXB0W25vd11baV07CiAgICAgICAgICAgIGlmKHUuc2l6ZSgpKXsKICAgICAgICAgICAgICAgIGludCBhdD11LmZyb250KCkuZmlyc3Q7CiAgICAgICAgICAgICAgICBMTCB0bXA9dS5mcm9udCgpLnNlY29uZCtzdW1baSsxXTsKICAgICAgICAgICAgICAgIGlmKHRtcD5kcFtub3ddW2krMV0pewogICAgICAgICAgICAgICAgICAgIGRwW25vd11baSsxXT10bXA7CiAgICAgICAgICAgICAgICAgICAgcHRbbm93XVtpKzFdPXB0W29sZF1bYXRdOwogICAgICAgICAgICAgICAgICAgIHB0W25vd11baSsxXS5maXJzdCs9aSsxLWF0OwogICAgICAgICAgICAgICAgICAgIHB0W25vd11baSsxXS5zZWNvbmQrPXBmeFtpKzFdLXBmeFthdF07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpZighZHBbbV1bbl0pIHJldHVybiB0cnVlOwogICAgbnVtPXB0W21dW25dLnNlY29uZDsKICAgIGRlbj1wdFttXVtuXS5maXJzdDsKICAgIHJldHVybiBmYWxzZTsKfQoKTEwgZmxvb3IoTEwgbnVtLCBMTCBkZW4pewogICAgaWYobnVtPj0wKSByZXR1cm4gbnVtL2RlbjsKICAgIHJldHVybiAtKCgtbnVtK2Rlbi0xKS9kZW4pOwp9CgppbnQgbWFpbigpewogICAgd2hpbGUoc2NhbmYoIiVkJWQlZCVkIiwmbiwmbSwmbCwmcik9PTQpewogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgICAgICBzY2FuZigiJWQiLGEraSk7CiAgICAgICAgICAgIHBmeFtpKzFdPXBmeFtpXSthW2ldOwogICAgICAgIH0KICAgICAgICBMTCBudW09MCxkZW49MTsKICAgICAgICB3aGlsZShkZW4gJiYgIWdhbyhudW0sZGVuKSk7CiAgICAgICAgaWYoIWRlbil7CiAgICAgICAgICAgIHB1dHMoIi0xIik7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIExMIGFucz1mbG9vcihudW0qMTAwLGRlbik7CiAgICAgICAgICAgIHByaW50ZigiJWxsZC4lMDJsbGRcbiIsYW5zLzEwMCxhYnMoYW5zKSUxMDApOwogICAgICAgIH0KICAgIH0KfQo=