Pagini recente » Cod sursa (job #3188771) | Cod sursa (job #185362) | Cod sursa (job #447882) | Cod sursa (job #2798805) | Cod sursa (job #3126478)
//#include <iostream>
#include <fstream>
#include<deque>
using namespace std;
std::ifstream cin("branza.in");
std::ofstream cout("branza.out");
struct sapt{
int cost,pozitie;
sapt(int c,int p):cost(c),pozitie(p){};
~sapt() = default;
};
int main() {
deque<sapt> minim;
int nr_sapt, cost_depozitare,timp_depozitare,cost_total=0;
cin>>nr_sapt>>cost_depozitare>>timp_depozitare;
for(int i = 0; i < nr_sapt; i++){
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;
}