Cod sursa(job #344101)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 28 august 2009 14:23:33
Problema Secventa 3 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <cstdio>
#include <cstring>

#define file_in "secv3.in"
#define file_out "secv3.out"

#define Nmax 30110

int n,l,u;
double suma1,suma2;
double c[Nmax],t[Nmax];
char s[100100];

int main()
{
	int i,j,nr;
	int x;
	freopen(file_in,"r",stdin);
	
	scanf("%d %d %d\n", &n,&l,&u);

	/*for (i=1;i<=n;++i)
		 scanf("%lf", &c[i]);
	for (i=1;i<=n;++i)
		 scanf("%lf", &t[i]);
    */
	
	gets(s);
	nr=0;
	i=0;
	while(i<strlen(s))
	{
		x=0;
		while(s[i]>='0' && s[i]<='9')
		{
			x=x*10+s[i]-'0';
			i++;
		}
		i++;
		c[++nr]=(double)x;
	}

	gets(s);
	
	i=0;
	nr=0;
	while(i<strlen(s))
	{
		x=0;
		while(s[i]>='0' && s[i]<='9')
		{
			x=x*10+s[i]-'0';
			i++;
		}
		i++;
		t[++nr]=(double)x;
	}

	fclose(stdin);
	
	double max=0.0;

	for (i=1;i<=n;++i)
	{
		suma1=c[i];
		suma2=t[i];
		nr=1;
		if (nr>=l && nr<=u && suma1/suma2>max)
			max=suma1/suma2;
		
		for (j=i+1;j<=n;++j)
		{
			suma1+=c[j];
			suma2+=t[j];
			nr++;
			if (nr>=l && nr<=u && suma1/suma2>max)
					max=suma1/suma2;
			if (nr>u) break;

		}
	}

	freopen(file_out,"w",stdout);
    printf("%.2lf", max);

	fclose(stdout);

	return 0;
}