Pagini recente » Cod sursa (job #1200911) | Cod sursa (job #395523) | Cod sursa (job #2985488) | Cod sursa (job #1089361) | Cod sursa (job #2886894)
#include<fstream>
#include<deque>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
deque<int> dcoada;
long long n, k, pdepozit, texpir, cprodus[10000001], cantcumparare, i, cost;
int main(){
fin>>n>>pdepozit>>texpir;
for(i=1; i<=n; i++){
fin>>cprodus[i]>>cantcumparare;
while(!dcoada.empty() && i-texpir > dcoada.front())
dcoada.pop_front();
while(!dcoada.empty() && cprodus[dcoada.back()] + (i-dcoada.back())*pdepozit > cprodus[i])
dcoada.pop_back();
dcoada.push_back(i);
cost += cantcumparare * (cprodus[dcoada.front()] + pdepozit*(i-dcoada.front()));
}
fout<<cost;
return 0;
}