Cod sursa(job #168568)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 31 martie 2008 17:16:14
Problema Secventa 3 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>
int n,l,u,i,j,p,c[30003],t[30003],ls,ld,sc[30003],st[30003];
float f;
int cmp(int x1,int y1,int x2,int y2){
    if ((sc[y1]-sc[x1-1])*(st[y2]-st[x2-1])>(st[y1]-st[x1-1])*(sc[y2]-sc[x2-1])) return 1;
        else return 2;
    }     
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",&c[i]);
    for (i=1;i<=n;i++) scanf("%d",&t[i]);
    sc[0]=st[0]=0;
    for (i=1;i<=n;i++) {sc[i]=sc[i-1]+c[i];
                        st[i]=st[i-1]+t[i];}
    ls=1;ld=l;
    for (i=l+1;i<=n;i++)
     {if (i-u+1>0) p=i-u+1;
             else p=1;
      for (j=p+1;j<=i-l+1;j++)
        if (cmp(j,i,p,i)==1) p=j;
      if (cmp(p,i,ls,ld)==1)  {ls=p;
                               ld=i;}
      }
     f=(float)(sc[ld]-sc[ls-1])/(st[ld]-st[ls-1]);
     printf("%6.2f",f);
     return 0;
     }