#P12015. [NOISG 2025 Finals] Monsters

[NOISG 2025 Finals] Monsters

Description

Penguinland 是一条无限的数轴,上面有 nn 只怪物。第 ii 只怪物最初位于数轴上的位置 a[i]a[i],其生命值为 h[i]h[i]。保证没有两只怪物具有相同的初始位置。

今天,企鹅 Brian 想要打败所有的怪物!为了打败它们,Brian 在某些位置埋下了 kk 颗地雷。第 jj 颗地雷位于位置 x[j]x[j]。引爆一颗地雷会立即摧毁所有站在该位置的怪物,并且每颗地雷可以被引爆任意次数。然而,每次引爆的代价是 11 美元。保证没有两颗地雷被埋在相同的位置。

除了引爆地雷,Brian 还可以执行两种操作:

  • 将一只怪物向左或向右移动 11 个单位距离。
  • 增加或减少一只怪物的生命值 11

每次操作的代价是 11 美元。

如果一只怪物的生命值降至 00 或者它被地雷摧毁,则认为该怪物被打败。请帮助 Brian 找出打败所有怪物所需的最小代价(以美元计)。

Input Format

你的程序必须从标准输入读取数据。

输入的第一行包含两个以空格分隔的整数 nnkk

接下来的 nn 行,每行包含两个以空格分隔的整数。第 ii 行包含 a[i]a[i]h[i]h[i]

最后一行包含 kk 个以空格分隔的整数 x[1],x[2],,x[k]x[1], x[2], \ldots, x[k]

Output Format

你的程序必须将结果打印到标准输出。

输出一个单独的整数,即打败所有怪物所需的最小代价(以美元计)。

输出应仅包含一个整数,不要打印任何额外的文本,例如 “输入一个数字” 或 “答案是”。

3 1
2 2
4 5
5 4
5
4
5 2
7 7
6 3
10 4
4 4
9 1
7 10
7
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

Hint

子任务

对于所有测试用例,输入将满足以下约束条件:

  • 1n,k2000001 \leq n, k \leq 200\,000
  • 对于所有 1in1 \leq i \leq n,有 1a[i],h[i]1091 \leq a[i], h[i] \leq 10^9
  • 对于所有 1ik1 \leq i \leq k,有 1x[i]1091 \leq x[i] \leq 10^9
  • 对于所有 iji \neq j,有 a[i]a[j]a[i] \neq a[j]
  • 对于所有 iji \neq j,有 x[i]x[j]x[i] \neq x[j]

你的程序将在满足以下特殊性质的输入数据上进行测试:

子任务 分数 特殊性质
00 样例
11 1414 k=1k = 1
22 66 k=2k = 2
33 1010 n,k18n, k \leq 18
44 3030 n,k3000n, k \leq 3000
55 2929 h[i]=109h[i] = 10^9
66 1111

样例 1 解释

此样例适用于子任务 1,3,4,61, 3, 4, 6

n=3n = 3 只怪物和 k=1k = 1 颗地雷。Brian 可以:

  • 将怪物 11 的生命值减少至 00,花费 22 美元。
  • 将怪物 22 向右移动 11 个单位(位置从 44 变为 55),花费 11 美元。
  • 引爆位置 55 处的地雷,击败怪物 22 和怪物 33,花费 11 美元。

总花费为 2+1+1=42 + 1 + 1 = 4 美元。

样例 2 解释

此样例适用于子任务 2,3,4,62, 3, 4, 6

n=5n = 5 只怪物和 k=2k = 2 颗地雷。Brian 可以:

  • 将怪物 55 的生命值减少至 00,花费 11 美元。
  • 引爆地雷 22,击败怪物 33,花费 11 美元。
  • 将怪物 22 向右移动 11 个单位(位置从 66 变为 77),花费 11 美元。
  • 将怪物 44 向右移动 33 个单位(位置从 44 变为 77),花费 33 美元。
  • 引爆地雷 11,击败怪物 1,2,41, 2, 4,花费 11 美元。

总花费为 1+1+1+3+1=71 + 1 + 1 + 3 + 1 = 7 美元。

样例 3 解释

此样例适用于子任务 3,4,63, 4, 6