Cod sursa(job #3289411)

Utilizator amunnumeVlad Patrascu amunnume Data 26 martie 2025 19:28:11
Problema Secventa 3 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv3.in");
ofstream fout("secv3.out");
const int N=30005;
int n,l,r,i,j,a,b,s[N],t[N];
double c[N],d[N];
double v[N],mx;
deque<int> q;
void read()
{
    fin>>n>>l>>r;
    for(i=1; i<=n; ++i)
    {
        fin>>s[i];
        c[i]=c[i-1]+s[i];
    }
    for(i=1; i<=n; ++i)
    {
        fin>>t[i];
        d[i]=d[i-1]+t[i];
    }
}
int main()
{
    read();
    for(i=1; i<=n; ++i)
    {
        a+=s[i];
        b+=t[i];
        v[i]=1.0*a/b;
        while(!q.empty() && v[i-l]<v[q.back()]) q.pop_back();
        while(!q.empty() && q.front()<=i-r) q.pop_front();

        if(i-l>0) q.push_back(i-l);
        if(q.empty()) mx=max(mx,v[i]);
        else
        {
            //cout<<i<<' '<<(d[i]-d[q.front()])<<' '<<(c[i]-c[q.front()])<<'\n';
            mx=max(mx,(c[i]-c[q.front()])/(d[i]-d[q.front()]));
        }
    }
    fout<<mx;
}