Cod sursa(job #2051104)

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

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