Pagini recente » Cod sursa (job #1972849) | Cod sursa (job #2946850) | Cod sursa (job #2572720) | Cod sursa (job #1600350) | Cod sursa (job #1992813)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
long long n,t,s,cost[100005],cant;
long long rez;
deque<int> deq;
int main()
{
f>>n>>s>>t;
for(int i=1;i<=n;++i)
{
f>>cost[i]>>cant;
if(!deq.empty() && i-deq.front()>=t)
{
deq.pop_front();
}
while(!deq.empty() && cost[i]<=cost[deq.back()]+s*(i-deq.back()))
{
deq.pop_back();
}
deq.push_back(i);
rez+=(cost[deq.front()]+s*(i-deq.front()))*cant;
}
g<<rez;
return 0;
}