Pagini recente » Cod sursa (job #2251674) | Cod sursa (job #2670033) | Cod sursa (job #638759) | Cod sursa (job #3149093) | Cod sursa (job #170912)
Cod sursa(job #170912)
#include<stdio.h>
long long m[100001],c[100001],cd[2][100001],u,i,j,n,k,l,p,s,t,nr[100001];
FILE *in,*out;
int main(){
in=fopen("branza.in","rt");
out=fopen("branza.out","wt");
fscanf(in,"%d%d%d%d%d",&n,&s,&t,&c[1],&nr[1]);
p=u=cd[1][1]=1;cd[0][1]=c[1]+(n-1)*s;m[1]=1;
for(i=2;i<=n;i++){
fscanf(in,"%d%d",&c[i],&nr[i]);
p+=(c[u]-c[p]==t-1);
l=c[i]+(n-i)*s;
while((u-p+1)&&cd[0][u]>=l)
u--;
cd[1][++u]=i;cd[0][u]=l;
m[i]=cd[1][p];
}
l=0;
for(i=1;i<=n;i++)
l+=c[m[i]]*nr[i]+(i-m[i])*s*nr[i];
fprintf(out,"%d",l);
return 0;
}