#include <bits/stdc++.h>
using namespace std;
ifstream f("secv3.in");
ofstream g("secv3.out");
const int nmax = 30005;
int n, l, u, sumi1[nmax], sumi2[nmax];
float maxi;
int main()
{
f >> n >> l >> u;
for(int i = 1; i <= n; i ++)
{
int x;
f >> x;
sumi1[i] = sumi1[i - 1] + x;
}
for(int i = 1; i <= n; i ++)
{
int x;
f >> x;
sumi2[i] = sumi2[i - 1] + x;
}
int k = 1;
for(int i = l; i <= n; i ++)
{
while(k + u - 1 < i)k ++;
float s1 = 1.00 * (sumi1[i] - sumi1[k - 1]) / (sumi2[i] - sumi2[k - 1]);
float s2 = 1.00 * (sumi1[i] - sumi1[k]) / (sumi2[i] - sumi2[k]);
while(s1 < s2 && k + l - 1 <= i)
{
k ++;
s1 = 1.00 * ((sumi1[i] - sumi1[k - 1]) - (sumi2[i] - sumi2[k - 1]));
s2 = 1.00 * ((sumi1[i] - sumi1[k]) - (sumi2[i] - sumi2[k]));
}
maxi = max(maxi, s1);
}
g << fixed << setprecision(2) << maxi;
return 0;
}