Pagini recente » Cod sursa (job #3211496) | Cod sursa (job #3191607) | Cod sursa (job #229107) | Cod sursa (job #1026760) | Cod sursa (job #60416)
Cod sursa(job #60416)
#include <stdio.h>
#define NMAX 30100
int a[NMAX], b[NMAX];
int n, l, u;
double max;
double s1[NMAX], s2[NMAX];
void read()
{
int i;
scanf("%d %d %d\n", &n, &l, &u);
for(i = 1; i <= n; ++i)
{
scanf("%d", &a[i]);
s1[i] = s1[i-1] + a[i];
}
for(i = 1; i <= n; ++i)
{
scanf("%d", &b[i]);
s2[i] = s2[i-1] + b[i];
}
}
void solve()
{
int i;
short inc, sf;
//double s1, s2;
//double scade1, scade2;
//s1 = s2 = 0;
inc = 1;
sf = l;
max = s1[sf] / s2[sf];
while(sf <= n)
{
/*if(max * (s2[sf] - s2[inc-1]) < s1[sf] - s1[inc-1] )
max = (s1[sf] - s1[inc-1]) / (s2[sf] - s2[inc-1]);
*/
//scade1 = scade2 = 0;
for(i = sf; i <= (sf + (u - l)) && i <= n; ++i)
{
if(max * (s2[i] - s2[inc-1]) < s1[i] - s1[inc-1])
max = (s1[i] - s1[inc-1]) / (s2[i] - s2[inc-1]);
}
//s1 -= a[inc]+scade1;
//s2 -= b[inc]+scade2;
++inc, ++sf;
//s1 += a[sf];
//s2 += b[sf];
}
}
int main()
{
freopen("secv3.in", "r", stdin);
freopen("secv3.out", "w", stdout);
read();
solve();
printf("%.2lf\n", max);
fclose(stdin);
fclose(stdout);
return 0;
}