Cod sursa(job #2051080)

Utilizator sabinantonSabin Anton sabinanton Data 28 octombrie 2017 15:16:51
Problema Secventa 3 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("secv3.in");
ofstream fout("secv3.out");
int n,d1[100001],st1=1,dr1=0,l,u;
float mx=-10000,v[1000001],x[100001];
int main()
{
    int i,j;
    fin>>n>>l>>u;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
        v[i]+=v[i-1];
    }
    for(i=1;i<=n;i++)
    {
        fin>>x[i];
        x[i]+=x[i-1];
        if(d1[st1]==i-u+l-1)
        {
            st1++;
        }
        while(st1<=dr1&&(v[i]-v[d1[st1]])/(x[i]-x[d1[st1]])>=(v[d1[dr1]]-v[d1[st1]])/(x[d1[dr1]]-x[d1[st1]]))
            dr1--;
        d1[++dr1]=i;
        if(mx<(v[i]-v[d1[st1]])/(x[i]-x[d1[st1]]))
            mx=(v[i]-v[d1[st1]])/(x[i]-x[d1[st1]]);
    }
    fout<<setprecision(2)<<fixed<<mx;
    return 0;
}