Cod sursa(job #95964)

Utilizator megabyteBarsan Paul megabyte Data 30 octombrie 2007 21:40:29
Problema Secventa 3 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <cstdio>
#include <cmath>
#define INF "secv3.in"
#define OUF "secv3.out"
#define NMAX 30002
#define EPS 1e-4
using namespace std;

int main()
{
    int i,j,n,l,u,c[NMAX],t[NMAX],csum,tsum;
    float rp[NMAX],max,aux;
    FILE *in,*out;
    in=fopen(INF,"r");
    out=fopen(OUF,"w");
    fscanf(in,"%d%d%d",&n,&l,&u);
    for(i=1;i<=n;++i) fscanf(in,"%d",c+i);
    for(i=1;i<=n;++i) {fscanf(in,"%d",t+i);rp[i]=(float)c[i]/(float)t[i];}
    
    for(i=1;i<l;++i) 
    {
                     csum+=c[i];
                     tsum+=t[i];
    }
    
    max=0; j=1;i=l;
    while(i<=n)
    {
               csum+=c[i];
               tsum+=t[i];
               if(i-j+1>u)
               {
                          csum-=c[j];
                          tsum-=t[j];
                          ++j;
               }
               while(i-j+1>l&&rp[i]-rp[j]>EPS)
               {
                          csum-=c[j];
                          tsum-=t[j];
                          ++j;
               }
               aux=(float)c[i]/(float)t[i];
               if(aux-max>EPS) max=aux;
               ++i;
    }
    
    fprintf(out,"%.2f",max);
//    printf("%.2f",max);
//    scanf("%d",&i);
    fclose(in);fclose(out);
    return 0;
}