Pagini recente » Cod sursa (job #2592657) | Cod sursa (job #1541625) | Cod sursa (job #531708) | Cod sursa (job #2085537) | Cod sursa (job #2278132)
#include <bits/stdc++.h>
using namespace std;
ifstream in("secv3.in");
ofstream out("secv3.out");
const int NMAX=30001;
pair <float,float> v[NMAX];
int dq[NMAX];
int n,l,u,st,dr,x;
float ans=0.00;
int main()
{
in>>n>>l>>u;
for(int i=1;i<=n;++i)
{
in>>x;
v[i].first=v[i-1].first+x;
}
for(int i=1;i<=n;++i)
{
in>>x;
v[i].second=v[i-1].second+x;
}
st=1;
dr=0;
for(int i=1;i<=n;++i)
{
if(st<=dr && dq[st]==i-u)
++st;
while(st<=dr && (v[dq[dr]].first-v[dq[st]-1].first+v[i].first-v[i-1].first) / (v[dq[dr]].second-v[dq[st]-1].second+v[i].second-v[i-1].second) < (v[i].first-v[i-1].first) / (v[i].second-v[i-1].second))
--dr;
dq[++dr]=i;
if(i>=l)
ans=max(ans,(float)((v[dq[dr]].first-v[dq[st]-1].first)/(v[dq[dr]].second-v[dq[st]-1].second)));
}
out<<setprecision(2)<<fixed<<ans;
return 0;
}