Cod sursa(job #282052)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 16 martie 2009 20:02:33
Problema Secventa 3 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
#include <stdio.h>

using namespace std;

double S_max;
double a[30010],b[30010];
double num[30010];
double q[30010],nr;
int n,m,M,sf,inc,u,l,dif;

void citire ()
{
     freopen ("secv3.in","r",stdin);
     freopen ("secv3.out","w",stdout);
     scanf ("%d %d %d",&n,&u,&l);
     for (int i=0;i<n;i++)
          scanf ("%lf",&a[i]);

     for (int i=0;i<n;i++)
     {
          scanf ("%lf",&b[i]);
          num[i]=a[i]/b[i];
     }
}

void solve()
{
     double S=1;
     inc=0;
     sf=u-1;

     for (int i=0;i<u;i++)
     {
          q[i]=num[i];
          S*=num[i];
     }
     S_max=S;
     for (int i=u;i<n;i++)
     {
          if (q[inc]<1)
          {
               nr=num[i];
               dif=sf-inc+1;

               while (dif>=u && q[inc]<1)
               {
                    S/=q[inc];
                    dif--;
                    inc++;
               }
          }

     q[++sf]=num[i];
     S*=num[i];

     if ((sf-inc+1)==l+1)
     {
          S/=q[inc];
          ++inc;
     }
     if (S>S_max)
          S_max=S;
     }
     printf("%.2lf\n",S_max);
}

int main()
{
     citire();
     solve();
     return 0;
}