Pagini recente » Cod sursa (job #708) | Cod sursa (job #231276) | Cod sursa (job #681626) | Cod sursa (job #1317176) | Cod sursa (job #936299)
Cod sursa(job #936299)
#include <cstdio>
#include <cassert>
const int nmax=100010;
int deque[nmax],p[nmax],c[nmax];
long long d[nmax];
int main()
{
int n=0,s=0,t=0,sum=0,i=0,u=0,x=1;
assert(freopen("branza.in","r",stdin));
assert(freopen("branza.out","w",stdout));
assert(scanf("%d%d%d",&n,&s,&t));
for(i=1; i<n+1; ++i)
assert(scanf("%d%d",&c[i],&p[i]));
for(i=1; i<n+1; ++i)
{
while(c[i]<(c[deque[u]]+(i-deque[u])*s) && x<u+1)
--u;
deque[++u]=i;
if(deque[x]+t<i)
++x;
d[i]=c[deque[x]]+(i-deque[x])*s;
}
for(i=1; i<n+1; ++i)
sum=sum+d[i]*p[i];
assert(printf("%d\n",sum));
return 0;
}