Cod sursa(job #2009421)

Utilizator stefdascalescuStefan Dascalescu stefdascalescu Data 9 august 2017 17:19:26
Problema Secventa 3 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include<bits/stdc++.h>
using namespace std;
ifstream f("secv3.in");
ofstream g("secv3.out");
int n,l,r;
float rmax,r2;
deque<int>c;
deque<int>t;
int s1,s2;
int v[30001],v2[30001];
int main()
{
    f>>n>>l>>r;
    for(int i=1;i<=n;++i)
        f>>v[i];
    for(int i=1;i<=n;++i)
        f>>v2[i];
    int p=1;
    for(int i=p;i<=l;++i)
    {
        c.push_back(v[i]);
        s1+=v[i];
        t.push_back(v2[i]);
        s2+=v2[i];
    }
    int sz=1;
    for(int i=2;i<=n;++i)
    {
        float r2=(s1+0.0)/s2;
        if(r2>rmax)
            rmax=r2;
        float r1=(v[i]+0.0)/v2[i];
        if(r1>r){
            ++sz;
            s1+=v[i];
            s2+=v2[i];
            if(sz>r)
            {
                s1-=c[0];
                s2-=t[0];
                c.pop_front();
                t.pop_front();
                --sz;
            }
        }
        else{
            c.clear(),t.clear();
            s1=v[i];
            s2=v2[i];
            sz=1;
        }
        c.push_back(v[i]);
        t.push_back(v2[i]);
    }
    r2=(s1+0.0)/s2;
    if(rmax<r2)
        rmax=r2;
    g<<fixed<<setprecision(3)<<rmax<<'\n';
    return 0;
}