首页 > 技术文章 > poj2393tmp

acm-jing 2018-10-22 09:58 原文

#include"iostream"
#include"stdio.h"
#include"algorithm"
using namespace std;
const int MAXN=10005;
typedef long long ll;
int n,s;
struct Node
{
    int productCostPerUnit;
    int requireNum;
};
Node weeks[MAXN];

ll Solve()
{
    ll sum=0;
    int i=0;
    while(i<n)
    {
        sum+=weeks[i].productCostPerUnit*weeks[i].requireNum;
        int k=1;
        while(i+k<n&&weeks[i].productCostPerUnit+k*s<weeks[i+k].productCostPerUnit)
        {
            sum+=(weeks[i].productCostPerUnit+k*s)*weeks[i+k].requireNum;
            k++;
        }
        i=i+k;
    }
    return sum;
}
int main()
{
    while(scanf("%d%d",&n,&s)==2)
    {
        for(int i=0;i<n;i++)
            scanf("%d%d",&weeks[i].productCostPerUnit,&weeks[i].requireNum);
        cout<<Solve()<<endl;
    }
    return 0;
}

  

推荐阅读