Pagini recente » Cod sursa (job #2754017) | Cod sursa (job #2661455) | Cod sursa (job #413790) | Cod sursa (job #3256901) | Cod sursa (job #3239801)
#include <fstream>
#include <deque>
#define cost first
#define timp second
using namespace std;
ifstream cin("branza.in");
ofstream cout("branza.out");
int n,s,t,p,c;
long long sol;
deque<pair<int,int>>q;
int main()
{
cin>>n>>s>>t;
for(int i=1;i<=n;i++){
cin>>p>>c;
while(!q.empty()&&q.front().timp+t<i)
q.pop_front();
long long mini=1LL*p*c;
if(!q.empty())
mini=min(mini,1LL*(q.front().cost+s*(i-q.front().timp))*c);
sol+=mini;
int e=1;
while(!q.empty()&&q.back().cost+s*e>=p){
q.pop_back();
e++;
}
q.push_back({p,i});
}
cout<<sol;
return 0;
}