#include <bits/stdc++.h>
using namespace std;
ifstream in("secv3.in");
ofstream out("secv3.out");
int n,L,U,cost[30005],timp[30005];
double s[30005];
deque <int> q;
int ver(double val)
{double aux;
int i;
while (!q.empty())q.pop_back();
for (i=1;i<=n;i++)
{
aux=cost[i]-timp[i]*val;
s[i]=aux+s[i-1];
if (i-L>=0){
while (!q.empty()&&s[i-L]<=s[q.back()])
q.pop_back();
q.push_back(i-L);
while (q.front()<i-U)
q.pop_front();
if (!q.empty()&&(s[i]-s[q.front()]>=0))
return 1;
}
}
return 0;
}
int main()
{int i,j;
in>>n>>L>>U;
for (i=1;i<=n;i++)
in>>cost[i];
for (i=1;i<=n;i++)
in>>timp[i];
int st=1,dr=100001,mij,ok;
double last=0.01;
while (st<=dr)
{
mij=(st+dr)/2;
ok=ver(1.0*mij/100);
if (ok==1)
last=1.0*mij/100,
st=mij+1;
else
dr=mij-1;
}
out<<fixed<<setprecision(2)<<last<<"\n";
out.close();
in.close();
return 0;
}