Pagini recente » Cod sursa (job #166702) | Cod sursa (job #2399567) | Cod sursa (job #2973111) | Cod sursa (job #677960) | Cod sursa (job #3289411)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv3.in");
ofstream fout("secv3.out");
const int N=30005;
int n,l,r,i,j,a,b,s[N],t[N];
double c[N],d[N];
double v[N],mx;
deque<int> q;
void read()
{
fin>>n>>l>>r;
for(i=1; i<=n; ++i)
{
fin>>s[i];
c[i]=c[i-1]+s[i];
}
for(i=1; i<=n; ++i)
{
fin>>t[i];
d[i]=d[i-1]+t[i];
}
}
int main()
{
read();
for(i=1; i<=n; ++i)
{
a+=s[i];
b+=t[i];
v[i]=1.0*a/b;
while(!q.empty() && v[i-l]<v[q.back()]) q.pop_back();
while(!q.empty() && q.front()<=i-r) q.pop_front();
if(i-l>0) q.push_back(i-l);
if(q.empty()) mx=max(mx,v[i]);
else
{
//cout<<i<<' '<<(d[i]-d[q.front()])<<' '<<(c[i]-c[q.front()])<<'\n';
mx=max(mx,(c[i]-c[q.front()])/(d[i]-d[q.front()]));
}
}
fout<<mx;
}