Pagini recente » Cod sursa (job #2976956) | Cod sursa (job #2428963) | Cod sursa (job #1174163) | Cod sursa (job #238633) | Cod sursa (job #114577)
Cod sursa(job #114577)
#include <stdio.h>
#define NMax 30002
long n, l, u, c[NMax], t[NMax], d[NMax], vf;
double p[NMax], maxx;
void read();
void solve();
void write();
int main()
{
read();
solve();
write();
return 0;
}
void solve()
{
int i;
vf = -1;
for (i = 1; i <= n; i++)
{
//adaug elementul i - l
if (i - l >= 0)
{
while (vf >= 0 && (p[d[vf]] > p[i-l] || d[vf] < i - u))
vf--;
d[vf] = i - l;
}
if (p[n] / p[d[vf]] > maxx)
maxx = p[n] / p[d[vf]];
}
}
void read()
{
int i;
FILE *fin = fopen("secv3.in", "rt");
fscanf(fin, "%d %d %d", &n, &l, &u);
for (i = 1; i <= n; i++)
fscanf(fin, "%d", &c[i]);
for (i = 1; i <= n; i++)
fscanf(fin, "%d", &t[i]);
p[0] = 1;
for (i = 1; i <= n; i++)
p[i] = p[i-1] * c[i] / t[i];
}
void write()
{
FILE *fout = fopen("secv3.out", "wt");
fprintf(fout, "%.2lf", maxx);
}