Pagini recente » Cod sursa (job #498982) | Cod sursa (job #3200393) | Cod sursa (job #1254813) | Cod sursa (job #708119) | Cod sursa (job #2173601)
#include <bits/stdc++.h>
#define Nmax 100001
#define ll long long
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
ll pd[Nmax];
int cost[Nmax];
int cant[Nmax];
deque <ll> dq;
int main()
{
int n,S,T,i;
f>>n>>S>>T;
for(i=1;i<=n;i++)
f>>cost[i]>>cant[i];
for(i=1;i<=n;i++)
{
if(i>T+1 and !dq.empty() and dq.front()>=cost[i-T-1]-S*(i-T-1))
dq.pop_front();
while(!dq.empty() and dq.back()>=cost[i]-S*i)
dq.pop_back();
dq.push_back(cost[i]-S*i);
pd[i]=dq.front()+S*i;
}
ll ans=0;
for(i=1;i<=n;i++)
ans+=1LL*cant[i]*pd[i];
g<<ans;
return 0;
}