Cod sursa(job #669834)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 27 ianuarie 2012 20:58:23
Problema Secventa 3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <iomanip>
#define LE 30006

using namespace std;
ifstream f("secv3.in");
ofstream g("secv3.out");
int n,L,U,LI,i;
float TB,CB,C[LE],T[LE],cost,timp,MAX;
void citire ()
{
  f>>n>>L>>U;
  for(i=1; i<=n; i++) f>>C[i];
  for(i=1; i<=n; i++)f>>T[i];
}
int main()
{
  citire();

  for(i=1,LI=1; i<=n; i++)
    {
      cost+=C[i];
      timp+=T[i];
      if (i-LI+1>U)
        {
          cost-=C[LI],timp-=T[LI];
          TB-=C[LI],CB-=T[LI];
          LI=i-L;
        }
      if (i>L)
        {
          CB+=C[i-L];
          TB+=T[i-L];
          if ((cost-CB)/(timp-TB)>cost/timp)
            {
              cost-=CB,timp-=TB;
              LI=i-L+1;
              CB=0,TB=0;
            }

        }
        if (i>=L) MAX=max(MAX,cost/timp);
    }



  g<<fixed;
  g<<setprecision(3)<<MAX<<'\n';
  f.close();
  g.close();
  return 0;
}