用每一周和上一周生产费用加存储费用比较,用小的取代,依次下去即可,最后加上每一周的价格乘数量
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
__int64 N,S,C[10005],Y[10005],sum;
while(cin>>N>>S)
{
sum=0;C[0]=999999999;
for(int i=1;i<=N;i++){
cin>>C[i]>>Y[i];
if(C[i]>C[i-1]+S)C[i]=C[i-1]+S;
}
for(int i=1;i<=N;i++){
sum+=C[i]*Y[i];
}
printf("%I64d\n",sum);
}
return 0;
}