#include<fstream>
#include<deque>
using namespace std;
ifstream cin("secv3.in");
ofstream cout("secv3.out");
int n,l,u,sol;
long long c[30005],t[30005],r[30005];
deque<int> d;
int start,finish,middle;
long long ans(int x){
long long Max=-3e14;
for(int i=1;i<=n;i++)
r[i]=c[i]-t[i]*x;
for(int i=l;i<=n;i++){
while(!d.empty() && r[d.back()]>r[i-l]) d.pop_back();
d.push_back(i-l);
Max=max(Max,r[i]-r[d.front()]);
if(d.front()==i-u) d.pop_front();
}
d.clear();
return Max;
}
int main(){
cin>>n>>l>>u;
for(int i=1;i<=n;i++) {int x; cin>>x; c[i]=c[i-1]+100*x;}
for(int i=1;i<=n;i++) {int x; cin>>x; t[i]=t[i-1]+x;}
start=0; finish=100000;
while(finish-start>1){
middle=(start+finish)/2;
if(ans(middle)>=0){
sol=middle;
start=middle;
}
else finish=middle;
}
cout<<sol/100.0;
}