Cod sursa(job #2844268)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 4 februarie 2022 00:35:53
Problema Secventa 3 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
/// TONI BO$$ was here
/// #MLC

using namespace std;

int dist[30001], tp[30001];

int main()
{
    int n, l, u, i, d, t, j;
    freopen("secv3.in","r",stdin);
    freopen("secv3.out","w",stdout);
    scanf("%d%d%d", &n, &l, &u);
    for(i = 1; i <= n; i++)
        scanf("%d", &dist[i]);
    for(i = 1; i <= n; i++)
        scanf("%d", &tp[i]);
    d = 0;
    t = 0;
    for(i = 1; i <= l; i++)
        d += dist[i],
        t += tp[i];
    double maxv = 1.0 * d / t;
    for(j = 1; i <= n; i++)
    {
        d += dist[i];
        t += tp[i];
        if(i - j + 1 > u)
            d -= dist[j],
            t -= tp[j],
            j++;
        while(i - j + 1 > l && 1.0 * d / t < 1.0 * (d - dist[j]) / (t - tp[j]))
            d -= dist[j],
            t -= tp[j],
            j++;
        maxv = max(maxv, 1.0 * d / t);
    }
    printf("%.3lf", maxv);

    return 0;
}