Cod sursa(job #2889600)

Utilizator DariaClemClem Daria DariaClem Data 12 aprilie 2022 23:19:33
Problema Branza Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("branza.in");
ofstream fout("branza.out");

deque<int> pretPerKg, saptamana;

int main() {
    int nrSaptamani, taxaDepozitare, timpDepozitare, index, pret, cantitate, suma = 0;
    fin >> nrSaptamani >> taxaDepozitare >> timpDepozitare;
    for (index = 0; index < nrSaptamani; index += 1) {
        fin >> pret >> cantitate;
        while (pretPerKg.empty() == 0 and pret <= pretPerKg.back() + taxaDepozitare * (index - saptamana.back())) {
            pretPerKg.pop_back();
            saptamana.pop_back();
        }
        pretPerKg.push_back(pret);
        saptamana.push_back(index);
        while (pretPerKg.empty() == 0 and saptamana.front() < index - timpDepozitare) {
            pretPerKg.pop_front();
            saptamana.pop_front();
        }
        suma += cantitate * (pretPerKg.front() + taxaDepozitare * (index - saptamana.front()));
    }
    fout << suma;
    return 0;
}