不用多说的简单题目。关键在于到底生产的价格使用的是哪一个,需要保存一个最小的价格就好了,慢慢琢磨吧程序写的很明白。
#include<iostream>
using namespace std;
long long pri[10005],need[10005];
int main()
{
long long n,s,sum;
long long lowest;
cin>>n>>s;
for(int i=1;i<=n;i++)
cin>>pri[i]>>need[i];
sum=pri[1]*need[1];
lowest=pri[1]+s;
for(int i=2;i<=n;i++)
{
if(lowest<pri[i])
{
sum=sum+lowest*need[i];
lowest=lowest+s;
}
else {
sum=sum+pri[i]*need[i];
lowest=pri[i]+s;
}
}
cout<<sum<<endl;
return 0;
}