Cod sursa(job #130571)

Utilizator razvi9Jurca Razvan razvi9 Data 1 februarie 2008 15:37:29
Problema Secventa 3 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
int n,a[30001],b[30001],x,y,l,u,i,j;
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(j=1;j<=l;j++)
		x=x+a[j],y=y+b[j];
	max=(double)x/y;
	for(i=j;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--;}
		while(j>l && (double)(x-a[i-j+1])/(y-b[i-j+1])>(double)x/y) {x=x-a[i-j+1];y=y-b[i-j+1];j--;}
		if((double)x/y>max) max=(double)x/y;}
	printf("%.2f",((int)(max*100))/100.0);
	fclose(stdout);
	return 0;
}