Cod sursa(job #188552)

Utilizator coderninuHasna Robert coderninu Data 8 mai 2008 21:35:16
Problema Secventa 3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <stdio.h>
#define Nmax 30001

int a[Nmax], b[Nmax], N, L1, L2, i, sus, jos, p, u, minsus, minjos;
double rez, temp;

int main()
{
	freopen("secv3.in", "r", stdin);
	scanf("%d %d %d\n", &N, &L1, &L2);
	for (i = 1; i<=N; i++) scanf("%d ", a + i);
	for (i = 1; i<=N; i++) scanf("%d ", b + i); 
	for (i = 1; i<=L1; i++) { sus+=a[i]; jos +=b[i]; }
	rez = (double)sus / jos;
	p = 1; u = L1; minsus = sus; minjos = jos;
	for (i = L1 + 1; i<=N; i++)
	{
		sus += a[i];
		jos += b[i];
		minsus += a[i] - a[i-L1];
		minjos += b[i] - b[i-L1];
		if (u - p + 1 == L2) { sus -=a[i-L1]; jos -=b[i-L1]; }
		if ((double)sus / jos > (double)minsus / minjos)
		{
			u++;
			temp = (double)sus / jos;
		}
		else
		{
			sus = minsus;
			jos = minjos;
			u = i;
			p = i-L1+1;
			temp = (double)sus / jos;
		}
		if (temp > rez) rez = temp;
	}
	fprintf(fopen("secv3.out", "w"), "%.2lf", rez);
	return 0;
}