Cod sursa(job #2891135)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 17 aprilie 2022 17:12:44
Problema Secventa 3 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("secv3.in");
ofstream out("secv3.out");
int n, l, u;
double cost[30005], timp[30005], sus, jos, ans;
int main()
{
    in>>n>>l>>u;
    for (int i = 1; i <= n; i++)
        in>>cost[i];

    for (int i = 1; i <= n; i++)
        in>>timp[i];

    int st = 1, dr = 2;
    sus = cost[1];
    jos = timp[1];
    ans = sus / jos;

    while (dr <= n) {
        if (dr - st + 1 < u) {
            if (sus + cost[dr] / jos + timp[dr] > sus / jos) {
                sus += cost[dr];
                jos += timp[dr];
                dr++;
            }
            else  {
                while (sus + cost[dr] / jos + timp[dr] < sus / jos && dr - st >= l) {
                    sus -= cost[st];
                    jos -= timp[st];
                    st++;
                }
                sus += cost[dr];
                jos += timp[dr];
                dr++;
            }
            ans = max(ans, sus / jos);
        }
        else {
             sus -= cost[st];
             jos -= timp[st];
             st++;
             ans = max(ans, sus / jos);
        }
    }

    out<<fixed<<setprecision(2)<<ans;

}