Pagini recente » Cod sursa (job #1805117) | Cod sursa (job #2740714) | Cod sursa (job #845530) | Cod sursa (job #1884024) | Cod sursa (job #83880)
Cod sursa(job #83880)
#include <stdio.h>
#define NMAX 30001
#define INF 1000000000
double D[NMAX], P[NMAX], S[NMAX];
int T[NMAX], V[NMAX];
int l, u, n;
int lo, hi;
double max;
int main()
{
freopen("secv3.in","r",stdin);
freopen("secv3.out","w",stdout);
int i;
scanf("%d %d %d", &n, &l, &u);
for (i=1; i<=n; ++i)
scanf("%d", &V[i]);
for (i=1; i<=n; ++i)
scanf("%d", &T[i]);
S[0]=0;
for (i=1; i<=n; ++i)
S[i]=S[i-1]+(double)V[i]/T[i];
lo=1;
hi=2;
max=S[l];
P[lo]=1;
D[lo]=S[1];
for (i=l+1; i<=n; ++i)
{
if (i-P[lo]+1>u) ++lo;
while (D[hi-1] >= S[i-l] && hi > lo) --hi;
D[hi] = S[i-l]; P[hi++] = i-l;
if (max < S[i]-D[lo])
max = S[i]-D[lo];
}
printf("%.2lf", max);
fclose(stdin);
fclose(stdout);
return 0;
}