Cod sursa(job #3036698)

Utilizator unomMirel Costel unom Data 24 martie 2023 20:42:01
Problema Secventa 3 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <deque>
#include <iomanip>

using namespace std;

ifstream f("secv3.in");
ofstream g("secv3.out");
int v[30005];
int w[30005];
int n, l, u, x;
deque<int> q;
int s1, s2;
float pmax = -99999999;
float p;

int main()
{
    f>>n>>l>>u;
    for(int i = 1; i<=n; i++)
    {
        f>>x;
        v[i] = v[i-1] + x;
    }
    for(int i = 1; i<=n; i++)
    {
        f>>x;
        w[i] = w[i-1] + x;
    }

    l--;
    u--;

    for(int i = l+1; i<=n; i++)
    {
        while(!q.empty() && v[i-l] <= v[q.back()])
        {
            q.pop_back();
        }

        q.push_back(i-l);

        if(q.back() - q.front() == u-l+1)
        {
            q.pop_front();
        }

        s1 = v[i] - v[q.front()];
        s2 = w[i] - w[q.front()];
        p = float(s1) / float(s2);

        pmax = max(pmax, p);
    }

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