Pagini recente » Cod sursa (job #796030) | Cod sursa (job #700367) | Cod sursa (job #2339010) | Cod sursa (job #1924389) | Cod sursa (job #2887558)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int main()
{
long long n, s, t, cost[100001] = {}, cantitate, cost_total = 0;
fin>>n>>s>>t;
deque <long long> v;
for(int i = 1; i <= n; i++)
{
fin>>cost[i]>>cantitate;
while(!v.empty() && v.front() < i - t)
v.pop_front();
while(!v.empty() && cost[v.back()] + (i - v.back()) * s > cost[i])
v.pop_back();
v.push_back(i);
cost_total = cost_total + (cantitate * (cost[v.front()] + (i - v.front()) * s));
}
fout<<cost_total;
return 0;
}