#loj5267. 「NOISG 2025 Final」Monsters
「NOISG 2025 Final」Monsters
[AdditionalFile5267.zip](file://AdditionalFile5267.zip?type=additional_file)
#5267. 「NOISG 2025 Final」Monsters
标签: 传统 | 时间限制: 1000 ms | 内存限制: 1024 MiB |
题目描述
译自 NOISG 2025 Final T1. Monsters
在企鹅大陆上,有一条无限长的数轴,上面分布着 只怪兽。第 只怪兽初始位于数轴上的位置 ,其生命值为 。保证任意两只怪兽的初始位置均不相同。
今天,企鹅布莱恩希望击败所有怪兽!为此,布莱恩在数轴上放置了 个地雷。第 个地雷位于位置 。引爆一个地雷会立即消灭位于该位置的所有怪兽,且每个地雷可以被多次引爆,但每次引爆需花费 1 元的费用。保证任意两个地雷的位置均不相同。
除了引爆地雷,布莱恩还可以执行以下两种操作:
- 将一只怪兽沿数轴向左或向右移动 个单位。
- 将一只怪兽的生命值增加或减少 。
每次操作需花费 元的费用。一只怪兽的生命值降为 或被地雷消灭时,即视为被击败。请帮助布莱恩计算击败所有怪兽所需的最小费用(以元为单位)。
输入格式
程序需从标准输入读取数据。
输入的第一行包含两个空格分隔的整数 和 。
接下来的 行,每行包含两个空格分隔的整数,第 行表示 和 。
最后一行包含 个空格分隔的整数 。
输出格式
程序需向标准输出输出结果。
输出一个整数,表示击败所有怪兽所需的最小费用(以元为单位)。
输出仅包含一个整数,不应包含任何额外文本,如 Enter a number 或 The answer is。
样例 1
输入
3 1
2 2
4 5
5 4
5
输出
4
有 只怪兽和 个地雷。布莱恩可以:
- 将怪兽 的生命值降为 ,花费 元。
- 将怪兽 向右移动 个单位(位置从 变为 ),花费 元。
- 引爆位置 的地雷,击败怪兽 和 ,花费 元。
总费用为 元。
这个样例满足子任务 的限制。
样例 2
输入
5 2
7 7
6 3
10 4
4 4
9 1
7 10
输出
7
有 只怪兽和 个地雷。布莱恩可以:
- 将怪兽 的生命值降为 ,花费 元。
- 引爆地雷 ,击败怪兽 ,花费 元。
- 将怪兽 向右移动 个单位(位置从 变为 ),花费 元。
- 将怪兽 向右移动 个单位(位置从 变为 ),花费 元。
- 引爆地雷 ,击败怪兽 、 和 ,花费 元。
总费用为 元。
这个样例满足子任务 的限制。
样例 3
输入
10 5
19 10
5 3
1 2
3 6
17 2
20 3
8 2
12 3
14 2
15 1
40 13 37 14 6
输出
23
这个样例满足子任务 的限制。
数据范围与提示
对于所有输入数据,满足:
- ,对于所有
- ,对于所有
- 对于所有 ,
- 对于所有 ,
详细子任务附加限制及分值如下表所示:
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 无附加限制 |