Cod sursa(job #3126483)

Utilizator stefanmo03Mocanu Stefan stefanmo03 Data 6 mai 2023 17:52:20
Problema Branza Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
//#include <iostream>
#include <fstream>
#include<deque>

using namespace std;
std::ifstream cin("branza.in");
std::ofstream cout("branza.out");
struct sapt{
    long long int cost,pozitie;
    sapt(long long int c,long long int p):cost(c),pozitie(p){};
    ~sapt() = default;
};
int main() {
    deque<sapt> minim;
    long long int nr_sapt, cost_depozitare,timp_depozitare,cost_total=0;
    cin>>nr_sapt>>cost_depozitare>>timp_depozitare;
    for(long long int i = 0; i < nr_sapt; i++){
        long long int cost_productie,vanzare;
        cin>>cost_productie>>vanzare;
        if(!minim.empty() && minim.back().cost+cost_depozitare*(i-minim.back().pozitie) > cost_productie)minim.pop_back();
        minim.push_back(sapt(cost_productie,i));
        while(i-minim.front().pozitie >= timp_depozitare)minim.pop_front();
        cost_total+=vanzare * minim.front().cost + vanzare* cost_depozitare * (i-minim.front().pozitie);

    }
    cout<<cost_total;
    return 0;
}