Cod sursa(job #2514311)

Utilizator Mirela_MagdalenaCatrina Mirela Mirela_Magdalena Data 25 decembrie 2019 12:21:57
Problema Secventa 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#define NMAX 30005
#include <cstdio>
#include <deque>
using namespace std;

int n, l, u, x;
pair<int, int> Sp[NMAX];
deque<int> secv;


void read()
{
    freopen("secv3.in", "r", stdin);
    scanf("%d %d %d", &n, &l, &u);
    for(int i=1; i<=n; ++i)
    {
        scanf("%d", &x);
        Sp[i].first = Sp[i-1].first + x;
    }

    for(int i=1; i<=n; ++i)
    {
        scanf("%d", &x);
        Sp[i].second = Sp[i-1].second + x;
    }
}


double fractie(int st, int fin){
    return (double)(Sp[fin].first - Sp[st-1].first) / (Sp[fin].second - Sp[st-1].second);
}



void solve()
{
    freopen("secv3.out", "w", stdout);
    double maxi = fractie(1, l);
    int minI = 1;
    for(int i = l + 1; i <= n; ++i)
    {
        if(i - minI > u)
            ++minI;
        double m1, m2;
        m1 = fractie(i, minI);
        m2 = fractie(i, i - l + 1);
        if(m1 > m2)
            maxi = max(maxi, m1);
        else{
            maxi = max(maxi, m2);
            minI = i - l + 1;
        }
    }
    printf("%.2f", maxi);
}




int main()
{
    read();
    solve();
    return 0;
}