Cod sursa(job #2300322)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 11 decembrie 2018 10:12:48
Problema Secventa 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>

const int MAXN = 30000 + 5;

using namespace std;

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

int n,lmin,lmax;
int cost[MAXN],sp_cost[MAXN],timp[MAXN],sp_timp[MAXN];
double ans = 0;

int main()
{

    in>>n>>lmin>>lmax;
    for(int i = 1; i <= n; i++){
        in>>cost[i];
        sp_cost[i] = sp_cost[i - 1] + cost[i];
    }
    for(int i = 1; i <= n; i++){
        in>>timp[i];
        sp_timp[i] = sp_timp[i - 1] + timp[i];
    }
    ans = 1.0 * sp_cost[lmin] / sp_timp[lmin];
    int poz = 0;

    for(int i = lmin + 1; i <= n; i++){
        if(i - lmin == lmax)
            poz++;
        double a = (sp_cost[i] - sp_cost[i - lmin]) * 1.0 / (sp_timp[i] - sp_timp[i - lmin]);
        double b = (sp_cost[i] - sp_cost[poz - 1] * 1.0) / (sp_timp[i] - sp_timp[poz - 1]);

        if(b < a){
            b = a;
            poz = i - lmin + 1;
        }
        ans = max(ans,b);
    }
    out<<ans;
    return 0;
}