Cod sursa(job #152959)

Utilizator RockManIzsak Istvan RockMan Data 9 martie 2008 22:30:14
Problema Secventa 3 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>

int main()
{
// declarari	
	
	int N,L,U,Cost[30001],Timp[30001];

	float max,su,sd,val;
	int i,uplimit,j,k,a,a1,a2;
	FILE *f;

// citire

	f=fopen("secv3.in","r");
	fscanf(f,"%d%d%d",&N,&L,&U);
	for (i = 1; i <= N; i++)
		fscanf(f,"%d",Cost + i);
	for (i = 1; i <= N; i++)
		fscanf(f,"%d",Timp + i);
	fclose(f);

// solutie

	uplimit = N - L + 1;
	max = 0;
	for(i = 1; i <= uplimit; i++)
	{
		su = Cost [i];
		sd = Timp [i];
		k = i + L - 1;
		for(j = i + 1; j <= k; j++)
		{
			su += Cost [j];
			sd += Timp [j];
		}
		while(((a = k + 1) <= U)&&(su / sd * (a1 = Timp[a]) - (a2 = Cost[a]) < 0))
		{
			su += a2;
			sd += a1;
			k++;
		}
		if((val = su / sd) > max) max = val;
	}

// afisare	
	
	f=fopen("secv3.out","w");
	fprintf(f,"%.2lf",max);
	fclose(f);

	return 0;
}