Cod sursa(job #2064741)

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

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++)
        {f>>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]-sumc[i-l])/(sumt[i]-sumt[i-l])>=(sumc[i]-sumc[d[dr]])/(sumt[i]-sumt[d[dr]]))
          {
              dr--;
          }
          d[++dr]=i-l;
          sum=(sumc[i]-sumc[d[st]])/(sumt[i]-sumt[d[st]]);
          if(sum>val_max)
              val_max=sum;
      }
    }

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