#include <fstream>
#include <deque>
#include <iomanip>
using namespace std;
const int Nmax=30005;
int c[Nmax],t[Nmax];
double spc[Nmax],spt[Nmax];
deque<int> dq;
int main()
{
ifstream fin("secv3.in");
ofstream fout("secv3.out");
int n,l,u;
fin>>n>>l>>u;
for (int i=1; i<=n; ++i) {
fin>>c[i];
spc[i]=spc[i-1]+c[i];
}
for (int i=1; i<=n; ++i) {
fin>>t[i];
spt[i]=spt[i-1]+t[i];
}
double sol=0;
for (int i=l; i<=n; ++i) {
if (!dq.empty() && dq.front()<i-u) {
dq.pop_front();
}
while (!dq.empty() && spc[dq.back()]-spt[dq.back()]*sol>spc[i-l]-spt[i-l]*sol) {
dq.pop_back();
}
dq.push_back(i-l);
double temp=(spc[i]-spc[dq.front()])/(spt[i]-spt[dq.front()]);
sol=max(sol,temp);
}
fout<<fixed<<setprecision(2)<<sol;
fin.close();
fout.close();
return 0;
}