Cod sursa(job #66348)

Utilizator peanutzAndrei Homorodean peanutz Data 17 iunie 2007 20:46:10
Problema Secventa 3 Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <stdio.h>

#define NMAX 30100

int a[NMAX], b[NMAX];
int n, l, u;
double max;

void read()
{
	int i;

	scanf("%d %d %d\n", &n, &l, &u);

	for(i = 1; i <= n; ++i)
	{
		scanf("%d", &a[i]);
	}
	for(i = 1; i <= n; ++i)
	{
		scanf("%d", &b[i]);
	}
}

void solve()
{
	int i, j;
	int inc, sf;
	double s1, s2;
	double scade1, scade2;

	s1 = s2 = 0;

	for(i = 1; i <= l; ++i)
	{
		s1 += a[i];
		s2 += b[i];
	}

	inc = 1;
	sf = l;

	max = s1 / s2;

	while(sf <= n)
	{
		if(max < s1 / s2)
			max = s1 / s2;

		scade1 = scade2 = 0;

		for(i = sf+1; i <= (sf + (u - l)) && i <= n; ++i)
		{
			s1 += a[i];
			s2 += b[i];

			scade1 += a[i];
			scade2 += b[i];

			if(max < s1 / s2)
				max = s1 / s2;
		}



		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;
}