#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;
}

  

poj2393tmp的更多相关文章

随机推荐

  1. Java 自定义异常类

    类1:public class LogicException extends RuntimeException {    //业务逻辑异常    /**     *      * @param mes ...

  2. Slf4j MDC 使用和 基于 Logback 的实现分析

    前言 如今,在 Java 开发中,日志的打印输出是必不可少的, 关于  有了日志之后,我们就可以追踪各种线上问题.但是,在分布式系统中,各种无关日志穿行其中,导致我们可能无法直接定位整个操作流程.因此 ...

  3. POJ3020 Antenna Placement(二分图最小路径覆盖)

    The Global Aerial Research Centre has been allotted the task of building the fifth generation of mob ...

  4. C# -- 泛型(3)

    简介: 前两篇文章讲了关于泛型的一些基础,下面笔者通过这篇文章来给刚刚接触泛型的朋友介绍一下 <1>.原理性的东西----” 泛型的协变和逆变 “ <2>.以及常用的接口--- ...

  5. C# 中请使用Contains判断字符串是否包含另一段字符串

    ∵ :使用Contains 比 IndexOf 的性能要高很多. 因为 Contains 是判断某个字符串是否在该字符串里面,而IndexOf是返回对应下标值 但是在使用contains的时候,注意转 ...

  6. C#截取验证码图片

    使用Graphics类中的DrawImage方法,这个方法有30种重载方式,这里只介绍一种,也是我认为最直观的一种,代码如下: using System.Drawing; namespace kq.U ...

  7. 使用web3部署一个比较复杂的智能合约

    以太坊系列之二十一 使用web3部署比较复杂的智能合约 搭建私链上的雷电网络 以太坊系列之二十一 使用web3部署比较复杂的智能合约 1 雷电网络智能合约简单介绍 2 remix 无法部署使用了lib ...

  8. JavaScript 如何工作:渲染引擎和性能优化技巧

    翻译自:How JavaScript works: the rendering engine and tips to optimize its performance 这是探索 JavaScript ...

  9. cinder侧卸载卷流程分析

    cinder侧卸载卷分析,存储类型以lvm+iscsi的方式为分析基础在虚机卸载卷的过程中,主要涉及如下三个函数1)cinder.volume.api.begin_detaching 把volume的 ...

  10. [Swift]八大排序算法(二):快速排序

    排序分为内部排序和外部排序. 内部排序:是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列. 外部排序:指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存 ...