Cod sursa(job #130580)

Utilizator razvi9Jurca Razvan razvi9 Data 1 februarie 2008 15:44:55
Problema Secventa 3 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
int n,a[30001],b[30001],x,y,x1,y1,l,u,i,j,k;
double max;
int main()
{
	freopen("secv3.in","r",stdin);
	freopen("secv3.out","w",stdout);
	scanf("%d %d %d",&n,&l,&u);
	for(i=1;i<=n;i++) scanf("%d",&a[i]);
	for(i=1;i<=n;i++) scanf("%d",&b[i]);
	for(i=1;i<=l;i++) x=x+a[i],y=y+b[i];
	max=(double)x/y;
	for(i=l+1,j=l;i<=n;i++){
		x=x+a[i];y=y+b[i];j++;
		if(j>u) {x=x-a[i-j+1];y=y-b[i-j+1];j--;}
		x1=x;y1=y;
		for(k=i-j+1;k<=i-l;k++){
			x1=x1-a[k];y1=y1-b[k];
			if((double)x1/y1>(double)x/y) {x=x1;y=y1;j=i-k;;}}
		if((double)x/y>max) max=(double)x/y;}
	printf("%.2f",((int)(max*100))/100.0);
	fclose(stdout);
	return 0;
}