Cod sursa(job #2064717)

Utilizator ioana_99Ioana Marin ioana_99 Data 12 noiembrie 2017 18:30:24
Problema Secventa 3 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("secv3.in");
ofstream g("secv3.out");
const int N=30010;
int c[N],t[N],n,st,dr,i,d[N],l,u,sumc[N],sumt[N];
double val_max,sum;

int main()
{
    f>>n>>l>>u;
    st=0;
    dr=-1;
    val_max=-1;
    for(i=0; i<n; i++)
        {f>>c[i];
        sumc[i]=sumc[i-1]+c[i];
        }
    for(i=0; i<n; i++)
        {cin>>t[i];
        sumt[i]=sumt[i-1]+t[i];
        }
    for(i=0; i<n; i++)
    {
      if(st<=dr && d[st]<=i-u-1)
      {
          st++;
      }
      if(i>=l)
      {
          while(st<=dr && (sumc[i-l]/sumt[i-l])>=(sumc[d[dr]]/sumt[d[dr]]))
          {
              dr--;
          }
          d[++dr]=i-l;
          sum=(double)(sumc[i]-sumc[d[st]])/(double)(sumt[i]-sumt[d[st]]);
          if(sum>val_max)
              val_max=sum;
      }
    }

        g<<fixed<<setprecision(2)<<val_max;
        return 0;
    }