首页 / 题库

P13076 - 1.3.1 Mixing Milk 混合牛奶

算法入门
通过次数29 提交次数44 内存限制 128MB 时间限制1秒

描述

牛奶包装是一个利润极低的生意,因此控制原料(牛奶)的价格至关重要。请帮助快乐的牛奶制造公司(Merry Milk Makers)以最便宜的方式购买所需数量的牛奶。

该公司每天从若干农民手中购买牛奶,每个农民的牛奶价格可能不同,且每个农民每天只能提供有限数量的牛奶。公司每天需要一定量的牛奶,并且可以从每个农民处购买不超过其最大供应量的任意数量。

给定公司每日的牛奶需求量和每个农民的价格及供应量,请计算满足需求所需的最小总费用。

输入

第一行包含两个整数 `N` 和 `M`:

- `N`$(0 ≤ N ≤ 2,000,000)$:公司一天所需的牛奶总量(加仑)。
- `M`$(0 ≤ M ≤ 5,000)$:可提供牛奶的农民人数。

接下来 `M` 行,每行包含两个整数 `Pi` 和 `Ai`:

- `Pi`$(0 ≤ P_i ≤ 1,000)$:第 `i` 个农民的每加仑牛奶价格。
- `Ai`$(0 ≤ A_i ≤ 2,000,000)$:该农民一天最多能出售的牛奶量(加仑)。

数据保证所有农民的牛奶供应总量 $≥ N$,即一定可以满足需求。

输出

输出一个整数,表示满足需求所需的最小总费用。

样例

  • 复制
  • 复制

提示

### 样例说明

- 需求 100 加仑。
- 农民价格及供应量:
- 价格 3,供应 10
- 价格 5,供应 20
- 价格 6,供应 30
- 价格 8,供应 80
- 价格 9,供应 40
- 最优购买策略:按价格从低到高购买:
- 买 10 加仑(价格 3),费用 30
- 再买 20 加仑(价格 5),费用 100
- 再买 30 加仑(价格 6),费用 180
- 还需 100 - 10 - 20 - 30 = 40 加仑,从价格 8 的农民处购买 40 加仑,费用 320
- 总费用 = 30 + 100 + 180 + 320 = 630

## 数据范围与约定

- $ 0 ≤ N ≤ 2,000,000$
- $ 0 ≤ M ≤ 5,000$
- $ 0 ≤ Pi ≤ 1,000$
- $ 0 ≤ Ai ≤ 2,000,000$

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36