#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define fbo find_by_order
#define ook order_of_key
typedef long long ll;
typedef pair<int,int> ii;
typedef vector<int> vi;
typedef long double ld;
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;
typedef set<int>::iterator sit;
typedef map<int,int>::iterator mit;
typedef vector<int>::iterator vit;
ld ori[300001];
ld a[300001];
ld s[300001];
int n;
void calcs()
{
s[0] = a[0];
for(int i = 1; i < n; i++)
{
s[i] = s[i-1]+a[i];
}
}
ld sum(int l, int r)
{
if(l==0) return s[r];
else return s[r]-s[l-1];
}
const ld eps = 1e-8;
struct PBDS
{
tree<pair<ld,int>, null_type, less<pair<ld,int> >, rb_tree_tag, tree_order_statistics_node_update> t;
int timer;
PBDS(){timer = 0;}
void insert(ld x)
{
t.insert(mp(x, timer));
timer++;
}
int lower(ld x)
{
return t.order_of_key(mp(x, -1));
}
void del(ld x) //make sure x exists
{
pair<ld,int> tmp = (*t.find_by_order(lower(x)));
t.erase(tmp);
}
int higher(ld x)
{
int tmp = lower(x);
return (int(t.size()) - tmp);
}
};
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
int l, r; ll k; cin >> n >> l >> r >> k;
for(int i = 0; i < n; i++) cin>>ori[i];
ld lo = 0; ld hi = ld(1e9);
while(hi - lo > eps)
{
ld mid = (lo+hi)*ld(0.5);
for(int i = 0; i < n; i++)
{
a[i] = ori[i] - mid;
}
calcs();
/*
for(int i = 0; i < n; i++)
{
cerr<<a[i]<<' ';
}
cerr<<'\n';
for(int i = 0; i < n; i++)
{
cerr<<s[i]<<' ';
}
cerr<<'\n';
*/
PBDS t;
t.insert(0);
ll cnt = 0; //count subsegments <= mid
for(int i = l - 1; i < n; i++)
{
if(i >= r)
{
if(i>r) t.del(s[i-r-1]);
else t.del(ld(0));
}
//cerr<<i<<' '<<t.t.size()<<'\n';
cnt += t.higher(s[i]);
t.insert(s[i-l+1]);
//cerr<<i<<' '<<cnt<<'\n';
}
//cerr<<fixed<<setprecision(12)<<mid<<' '<<cnt<<'\n';
if(cnt >= k)
{
hi = mid;
}
else
{
lo = mid;
}
}
cout << fixed << setprecision(12) << hi << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CiAKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZibyBmaW5kX2J5X29yZGVyCiNkZWZpbmUgb29rIG9yZGVyX29mX2tleQogCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHBhaXI8aW50LGludD4gaWk7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7IAp0eXBlZGVmIHRyZWU8aW50LCBudWxsX3R5cGUsIGxlc3M8aW50PiwgcmJfdHJlZV90YWcsIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4gcGJkczsKdHlwZWRlZiBzZXQ8aW50Pjo6aXRlcmF0b3Igc2l0Owp0eXBlZGVmIG1hcDxpbnQsaW50Pjo6aXRlcmF0b3IgbWl0Owp0eXBlZGVmIHZlY3RvcjxpbnQ+OjppdGVyYXRvciB2aXQ7CiAKbGQgb3JpWzMwMDAwMV07CmxkIGFbMzAwMDAxXTsKbGQgc1szMDAwMDFdOwppbnQgbjsKIAp2b2lkIGNhbGNzKCkKewoJc1swXSA9IGFbMF07Cglmb3IoaW50IGkgPSAxOyBpIDwgbjsgaSsrKQoJewoJCXNbaV0gPSBzW2ktMV0rYVtpXTsKCX0KfQogCmxkIHN1bShpbnQgbCwgaW50IHIpCnsKCWlmKGw9PTApIHJldHVybiBzW3JdOwoJZWxzZSByZXR1cm4gc1tyXS1zW2wtMV07Cn0KIApjb25zdCBsZCBlcHMgPSAxZS04OwogCnN0cnVjdCBQQkRTCnsKCXRyZWU8cGFpcjxsZCxpbnQ+LCBudWxsX3R5cGUsIGxlc3M8cGFpcjxsZCxpbnQ+ID4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+IHQ7CglpbnQgdGltZXI7CgkKCVBCRFMoKXt0aW1lciA9IDA7fQoJdm9pZCBpbnNlcnQobGQgeCkKCXsKCQl0Lmluc2VydChtcCh4LCB0aW1lcikpOwoJCXRpbWVyKys7Cgl9CgkKCWludCBsb3dlcihsZCB4KQoJewoJCXJldHVybiB0Lm9yZGVyX29mX2tleShtcCh4LCAtMSkpOwoJfQoJCgl2b2lkIGRlbChsZCB4KSAvL21ha2Ugc3VyZSB4IGV4aXN0cwoJewoJCXBhaXI8bGQsaW50PiB0bXAgPSAoKnQuZmluZF9ieV9vcmRlcihsb3dlcih4KSkpOwoJCXQuZXJhc2UodG1wKTsKCX0KCQoJaW50IGhpZ2hlcihsZCB4KQoJewoJCWludCB0bXAgPSBsb3dlcih4KTsKCQlyZXR1cm4gKGludCh0LnNpemUoKSkgLSB0bXApOwoJfQp9OwogCmludCBtYWluKCkKewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKCWludCBsLCByOyBsbCBrOyBjaW4gPj4gbiA+PiBsID4+IHIgPj4gazsKCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIGNpbj4+b3JpW2ldOwoJbGQgbG8gPSAwOyBsZCBoaSA9IGxkKDFlOSk7Cgl3aGlsZShoaSAtIGxvID4gZXBzKQoJewoJCWxkIG1pZCA9IChsbytoaSkqbGQoMC41KTsKCQlmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJCXsKCQkJYVtpXSA9IG9yaVtpXSAtIG1pZDsKCQl9CgkJY2FsY3MoKTsKCQkvKgoJCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgkJewoJCQljZXJyPDxhW2ldPDwnICc7CgkJfQoJCWNlcnI8PCdcbic7CgkJZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKCQl7CgkJCWNlcnI8PHNbaV08PCcgJzsKCQl9CgkJY2Vycjw8J1xuJzsKCQkqLwoJCVBCRFMgdDsKCQl0Lmluc2VydCgwKTsKCQlsbCBjbnQgPSAwOyAvL2NvdW50IHN1YnNlZ21lbnRzIDw9IG1pZAoJCWZvcihpbnQgaSA9IGwgLSAxOyBpIDwgbjsgaSsrKQoJCXsKCQkJaWYoaSA+PSByKQoJCQl7CgkJCQlpZihpPnIpIHQuZGVsKHNbaS1yLTFdKTsKCQkJCWVsc2UgdC5kZWwobGQoMCkpOwoJCQl9CgkJCS8vY2Vycjw8aTw8JyAnPDx0LnQuc2l6ZSgpPDwnXG4nOwoJCQljbnQgKz0gdC5oaWdoZXIoc1tpXSk7CgkJCXQuaW5zZXJ0KHNbaS1sKzFdKTsKCQkJLy9jZXJyPDxpPDwnICc8PGNudDw8J1xuJzsKCQl9CgkJLy9jZXJyPDxmaXhlZDw8c2V0cHJlY2lzaW9uKDEyKTw8bWlkPDwnICc8PGNudDw8J1xuJzsKCQlpZihjbnQgPj0gaykKCQl7CgkJCWhpID0gbWlkOwoJCX0KCQllbHNlCgkJewoJCQlsbyA9IG1pZDsKCQl9Cgl9Cgljb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbigxMikgPDwgaGkgPDwgJ1xuJzsKfQog