大水题。。。。 注意一下ans变量的定义类型就可以了。。。
#include<stdio.h>
#define MAXN 100000
int c[MAXN],y[MAXN];
int min(int a,int b){
int t;
if(a<b){
t=a;
}
else
t=b;
return t;
}
int main(){
int n,s;
int k=0;
__int64 ans;
scanf("%d %d",&n,&s);
for(int i=0;i<n;i++){
scanf("%d %d",&c[i],&y[i]);
}
ans=c[0]*y[0];
for(int j=1;j<n;j++){
k=min(c[j-1]+s,c[j]);
ans+=k*y[j];
k=0;
}
printf("%I64d\n",ans);
return 0;
}