Pagini recente » Cod sursa (job #1241824) | Profil Dobricean_Ioan | Cod sursa (job #152082) | Cod sursa (job #1684224) | Cod sursa (job #357150)
Cod sursa(job #357150)
#include<stdio.h>
int N,L,U,X,i,j,G[30002],P,aux,g,gi,gn;
double c[30002],t[30002],d[30002],sol,sc,dc;
void read(),solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("secv3.in","r",stdin);
freopen("secv3.out","w",stdout);
scanf("%d%d%d",&N,&L,&U);
for(i=1;i<=N;i++)scanf("%lf",&c[i]);
for(i=1;i<=N;i++){scanf("%lf",&t[i]);d[i]=c[i]/t[i];c[i]+=c[i-1];t[i]+=t[i-1];}
}
void solve()
{
if(U>=2*L)U=2*L-1;
for(P=L;P<=N;P++)
{
sc=(c[P]-c[P-L])/(t[P]-t[P-L]);
sol=(sc>sol)?sc:sol;
}
for(P=L+1;P<=N;P++)
G[++g]=P;
for(X=L+1;X<=U;X++)
{
gi=1;if(G[1]==X-1)gi=2;
gn=0;sc=0;
for(;gi<=g;gi++)
{
P=G[gi];
if(d[P]<sol)continue;
dc=(c[P]-c[P-X])/(t[P]-t[P-X]);
sc=sc>dc?sc:dc;
G[++gn]=P;
}
if(sc<sol&&N>20000)break;
g=gn;if(!gn)break;
sol=sol>sc?sol:sc;
}
printf("%.2lf",sol);
}