Pagini recente » Cod sursa (job #2594709) | Cod sursa (job #2621198) | Istoria paginii info-oltenia-2018/individual/clasament/11-12 | Cod sursa (job #3146478) | Cod sursa (job #3127010)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
//pret si saptamana in care e pretul
deque< pair<long long,int>>b;
long long N,S,T,C,P,cost;
int main()
{
f>>N>>S>>T;
f>>C>>P;
b.push_back({C,0});
cost+=P*b[0].first;
for(long long i=1; i<N;i++)
{
f >> C >> P;
//verific daca au trecut cele T saptamani pentru cat tine branza
if (b.front().second + T < i)
b.pop_front();
//scot branzele care nu sunt mai ieftine tinand cont de schema cu pretul pe pastratul branzei decat cea curenta
while(!b.empty() && (S * (i - b.back().second) + b.back().first) >= C)
b.pop_back();
b.push_back({C, i});
cost += P * b.front().first + S*P*(i-b.front().second);
}
g << cost;
return 0;
}