poj2393

说是贪心,有点动态规划的思想了,因为long long int错了两次。。。伤心

#include <iostream>
#include <cstring>
#include <cstdio>
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;
}

 

posted on 2017-03-31 15:37  发牌员  阅读(134)  评论(0)    收藏  举报

导航