Pagini recente » Borderou de evaluare (job #1844892) | Cod sursa (job #46373) | Cod sursa (job #2998903) | Cod sursa (job #3152908) | Cod sursa (job #920956)
Cod sursa(job #920956)
#include<stdio.h>
int n,s,t,c[100010],p[100010],m[100010],d[100010];
long long ret;
int main()
{
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
scanf("%d%d%d",&n,&s,&t);
for(int i=1;i<=n;++i)
scanf("%d%d",&c[i],&p[i]);
int f=1;
int b=0;
for(int i=1;i<=n;++i)
{
while(f<=b && c[i]+(n-i)*s<=c[d[b]]+(n-d[b])*s)
--b;
++b;
d[b]=i;
if(d[f]==i-t)
++f;
m[i]=c[d[f]]+(i-d[f])*s;
ret=ret+1LL*m[i]*p[i];
}
printf("%lld",ret);
return 0;
}