Cod sursa(job #344105)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 28 august 2009 14:29:34
Problema Secventa 3 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 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;
		
		while(nr<=u)
		{
			nr++;
			suma1+=c[nr];
			suma2+=t[nr];
			if (suma1/suma2>max)
				max=suma1/suma2;
		}
	}

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

	fclose(stdout);

	return 0;
}