Pagini recente » Cod sursa (job #3210112) | Cod sursa (job #1279766) | Cod sursa (job #1373314) | Monitorul de evaluare | Cod sursa (job #3248640)
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream cin("branza.in");
ofstream cout("branza.out");
vector < int > cost , v;
deque < int > dq;
int n,s,t;
void read()
{
cin>>n>>s>>t;
cost.resize(n+1);
v.resize(n+1);
for(int i=1;i<=n;i++)
cin>>cost[i]>>v[i];
}
void solve()
{
int ans=0;
for(int i=1;i<=n;i++)
{
while(!dq.empty() && dq.front()<i-t)
dq.pop_front();
while(!dq.empty() && cost[i]<cost[dq.back()]+s)
dq.pop_back();
dq.push_back(i);
ans+=cost[dq.front()]*v[i]+(i-dq.front())*s*v[i];
}
cout<<ans;
}
int main()
{
read();
solve();
return 0;
}