Cod sursa(job #2889625)

Utilizator catarau.bianca.Bianca Catarau catarau.bianca. Data 12 aprilie 2022 23:42:52
Problema Branza Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("branza.in");
ofstream g("branza.out"); 

int main() {
    long long nr_saptamani, pr_dep_sapt, max_depozitare, cost[100001], cantitate[100001];
    long long rez=0;
    f>>nr_saptamani>>pr_dep_sapt>>max_depozitare;
    deque <long long> d; 
    for (int sapt=1;sapt<=nr_saptamani;sapt++) {
        f>>cost[sapt]>>cantitate[sapt];
        while (!d.empty() && cost[sapt]<=cost[d.back()]+(sapt-d.back())*pr_dep_sapt) d.pop_back();
        if (d.front()>sapt-max_depozitare) d.pop_front();
        d.push_back(sapt);
        rez = rez + cantitate[sapt]*(cost[d.front()]+(sapt-d.front())*pr_dep_sapt);
    }
    g<<rez;
}