Pagini recente » Cod sursa (job #2636084) | Cod sursa (job #1881584) | Cod sursa (job #845859) | Cod sursa (job #2067271) | Cod sursa (job #980721)
Cod sursa(job #980721)
#include<stdio.h>
inline int min(int a,int b)
{
return a<b?a:b;
}
inline int max(int a,int b)
{
return a>b?a:b;
}
int c[100002],p[100002];
char f[100002];
int main()
{
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
int n,s,t,M,m=0,i,j;
long long sol=0,aux;
scanf("%d%d%d",&n,&s,&t);
for(i=1;i<=n;++i)
scanf("%d%d",&p[i],&c[i]);
for(i=1;i<=n;++i)
{
if(f[i]==0)
sol+=(long long)p[i]*c[i];
M=min(i+t,n);
m=max(m,i);
for(j=m+1;j<=M;++j)
{
aux=(long long)p[i]+(long long)s*(j-i);
if(aux<p[j])
{
f[j]=1;
sol+=aux*c[j];
m=j;
}
else
break;
}
}
printf("%lld\n",sol);
}