Cod sursa(job #1133062)

Utilizator raymanzoneNils Ben raymanzone Data 4 martie 2014 13:00:53
Problema Secventa 3 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <stdio.h>
 
int n,l,u,ss,st;
 
float smax;
 
struct {
    int costul,timpul;
}v[30000],sum[30000];
 
void citire()
{
    FILE *f=fopen("secv3.in","r");
    fscanf(f,"%d%d%d",&n,&l,&u);
    for(int i=0;i<n;i++)
        fscanf(f,"%d",&v[i].costul);
    for(int i=0;i<n;i++)
        fscanf(f,"%d",&v[i].timpul);
    fclose(f);
}
 int main()
{
    citire();

     
	for(int j=0;j<l;j++)
        {
            sum[0].costul+=v[j].costul;
            sum[0].timpul+=v[j].timpul;
        }
	
	smax=((float)sum[0].costul/sum[0].timpul)>smax?(float)sum[0].costul/sum[0].timpul:smax;
	
	for(int i=1;i<=n-l;i++)
	{ 
		sum[i].costul=sum[i-1].costul+v[i+l-1].costul-v[i-1].costul;
		sum[i].timpul=sum[i-1].timpul+v[i+l-1].timpul-v[i-1].timpul; 
		smax=((float)sum[i].costul/sum[i].timpul)>smax?(float)sum[i].costul/sum[i].timpul:smax;
	}
	
	for(int j=l;j<u;j++)
	{
		for(int i=0;i<n-j;i++)
		{
			sum[i].costul=sum[i].costul+v[i+j].costul;
			sum[i].timpul=sum[i].timpul+v[i+j].timpul;
			smax=((float)sum[i].costul/sum[i].timpul)>smax?(float)sum[i].costul/sum[i].timpul:smax;
		}
	}
	FILE *f=fopen("secv3.out","w");
    fprintf(f,"%.2f",smax);
    fclose(f);
    return 0;
}