Pagini recente » Borderou de evaluare (job #2912102) | Cod sursa (job #1976399) | Cod sursa (job #1974606) | Cod sursa (job #3000110) | Cod sursa (job #2888395)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
int main()
{
long long n,sapt,timp,cost,cerere,i,suma;
f>>n>>sapt>>timp;
deque<long long>dv;
deque<long long >dp;
i = 1;
suma = 0;
while (f>>cost>>cerere) {
while (!dp.empty() && !dv.empty() && cost<= dv.back()+sapt*(i-dp.back())) {
dv.pop_back();
dp.pop_back();
}
dv.push_back(cost);
dp.push_back(i);
if(i>=timp)
suma += cerere*(dv.back() + sapt*(i-dp.back()));
if(dp.front() <= i-timp) {
dv.pop_front();
dp.pop_front();
}
i++;
}
g<<suma-1;
return 0;
}