Cod sursa(job #168671)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 31 martie 2008 18:37:37
Problema Secventa 3 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <cstdio>
int n,l,u,i,j,p,c[30003],t[30003],ls,ld,sc[30003],st[30003],x,y;
int cmp(int x1,int y1,int x2,int y2){
    long long aux1=(sc[y1]-sc[x1-1])*(st[y2]-st[x2-1]);
    long long aux2=(st[y1]-st[x1-1])*(sc[y2]-sc[x2-1]);
    if (aux1>aux2) 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;}
      }
     x=sc[ld]-sc[ls-1];
     y=st[ld]-st[ls-1];
     printf("%d.",x/y);
     x=(x%y)*100;
     printf("%d",x/y);
     return 0;
     }