Cod sursa(job #2306626)

Utilizator AlexandruabcdeDobleaga Alexandru Alexandruabcde Data 22 decembrie 2018 17:46:56
Problema Secventa 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f ("secv3.in");
ofstream g ("secv3.out");

struct gigel
{
    int cost, timp;
};
gigel sp[30005];

int n, l, u;

void read()
{
    f >> n >> l >> u;

    for (int i = 1; i <= n; ++i)
    {
        f >> sp[i].cost;
        sp[i].cost += sp[i-1].cost;
    }
    for (int i = 1; i <= n; ++i)
    {
        f >> sp[i].timp;
        sp[i].timp += sp[i-1].timp;
    }
}

void solve()
{
    int p = 0;
    double sol = 1.0 * sp[l].cost / sp[l].timp;

    for (int i = l + 1; i <= n; ++i)
    {
        if (u == i - l) p++;

        double a = 1.0 * (sp[i].cost - sp[i - l].cost) / (sp[i].timp - sp[i - l].timp);
        double b = 1.0 * (sp[i].cost - sp[p - 1].cost) / (sp[i].timp - sp[p - 1].timp);

        if (a > b)
        {
            b = a;
            p = i - l + 1;
        }

        sol = max(sol, b);
    }

    g << setprecision(2) << fixed;
    g << sol << '\n';
}
int main()
{
    read();
    solve();
    return 0;
}