说是贪心,有点动态规划的思想了,因为long long int错了两次。。。伤心
#include#include #include using namespace std;const int maxn=10000+10;int a[maxn],b[maxn],c[maxn];int n,s;long long int sum;int main(){ while(~scanf("%d%d",&n,&s)) { sum=0; for(int i=1;i<=n;i++) scanf("%d%d",&a[i],&b[i]); c[1]=a[1]; for(int i=2;i<=n;i++) c[i]=min(a[i],c[i-1]+s); for(int i=1;i<=n;i++) sum+=c[i]*b[i]; printf("%lld\n",sum); } return 0;}