Pagini recente » Cod sursa (job #2946704) | Cod sursa (job #517291) | Cod sursa (job #2150287) | Cod sursa (job #2478922) | Cod sursa (job #358065)
Cod sursa(job #358065)
#include<stdio.h>
long long sum;
long s,n,t,poz[100010],cost[100010],deque[100010],c[100010],put[100010];
int main()
{
long i,p=1,u=0;
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
scanf("%ld%ld%ld",&n,&s,&t);
for (i=1;i<=n;++i)
{
scanf("%ld%ld",&c[i],&put[i]);
cost[i]=c[i]+s*(n-i);
}
for (i=1;i<=n;++i)
{
while(p<=u && cost[i]<cost[deque[u]])
u--;
deque[++u]=i;
while(deque[p]<i-t)
p++;
poz[i]=deque[p];
}
for (i=1;i<=n;++i)
sum+=(long long)put[i]*(c[poz[i]]+(i-poz[i])*s);
printf("%lld",sum);
return 0;
}