Cod sursa(job #2278214)

Utilizator corvinus2003Corvin Ghita corvinus2003 Data 7 noiembrie 2018 14:40:25
Problema Secventa 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <cstdio>

using namespace std;

const int LMAX = 30005;

int n, l, u;
int cost[LMAX], timp[LMAX];

double ans;

int main()
{
    freopen("secv3.in", "r", stdin);
    freopen("secv3.out", "w", stdout);
    /// folosesc freopen ca sa pot afisa doar doua zecimale

    scanf("%d %d %d\n", &n, &l, &u);
    for (int i = 1; i <= n; ++i)
    {
        scanf("%d ", &cost[i]);
        cost[i] += cost[i - 1];
    }

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

    ans = cost[l] * 1.0 / timp[l];
    int poz = 1;
    double a, b;

    for (int i = l + 1; i <= n; ++i)
    {
        if (i - l == u)
            poz++;
        a = (cost[i] - cost[i - l]) * 1.0 / (timp[i] - timp[i - l]);
        b = (cost[i] - cost[poz - 1]) * 1.0 / (timp[i] - timp[poz - 1]);

        if (a > b)
        {
            b = a;
            poz = i - l + 1;
        }
        if (ans < b)
            ans = b;
    }

    printf("%.2lf", ans);
    return 0;
}