Pagini recente » Cod sursa (job #359905) | Cod sursa (job #1368663) | Cod sursa (job #1509668) | Cod sursa (job #2268485) | Cod sursa (job #2388718)
#include <fstream>
#include <deque>
#define N 100100
using namespace std;
ifstream cin("branza.in");
ofstream cout("branza.out");
int n,s,t,c;
unsigned long long sum,b[N];
struct chestie{
int ind,m;
}ch;
deque <chestie> mom;
int main()
{
cin>>n>>s>>t;
for(int i=1;i<=n;i++)
{
cin>>b[i]>>c;
while(!mom.empty() && (mom.back().ind+t-1<i ||mom.back().m+s*(i-mom.back().ind)>=b[i]))
mom.pop_back();
while(!mom.empty() && mom.front().ind+t-1<i)
mom.pop_front();
mom.push_back({i,b[i]});
ch=mom.front();
sum=sum+(ch.m+s*(i-ch.ind))*c;
}
cout<<sum<<'\n';
return 0;
}