#P15497. [ICPC 2025 APC] Hold the Star

[ICPC 2025 APC] Hold the Star

说明

你正在玩一个电脑游戏,游戏中有 nn 个房间,mm 个角色和一颗星星。房间从左到右排列,依次编号为 11nn。角色编号为 11mm。在任何时刻,每个角色都在某个房间内,而星星要么在某个房间内,要么被某个角色持有。游戏的目标是让星星被角色 mm 持有。

你可以通过执行若干动作来玩这个游戏。每个动作消耗一定数量的星币(游戏中的货币单位),可能为零。在每个动作中,你选择一个角色 xx(设该角色当前所在的房间为 yy),并命令该角色执行以下操作之一:

  • 移动到相邻的房间(y1y-1y+1y+1),如果该房间存在。如果角色 xx 正持有星星,则角色继续持有星星。该动作消耗 sxs_x 星币。s1,s2,,sms_1, s_2, \ldots, s_m 的值已给定。
  • 拾起星星并持有它,前提是星星当前在房间 yy 且未被任何角色持有。该动作消耗 00 星币。
  • 放下星星并释放它,前提是星星当前被角色 xx 持有。星星随后落到房间 yy。该动作消耗 00 星币。

游戏包含 qq 个关卡,编号为 11qq。在所有关卡中,每个角色 ii 初始位于房间 rir_i,且角色 mm 必须持有星星才能通关。关卡之间的唯一区别在于,在每个关卡 jj 中,星星初始位于房间 ljl_j

对于每个关卡,你需要计算通关所需花费的最小总星币。注意,你不必最小化动作次数。

输入格式

输入的第一行包含三个整数 nnmmqq1n1091\le n\le 10^91m1000001\le m\le 100\,0001q1000001\le q\le 100\,000)。接下来的 mm 行中的第 ii 行包含两个整数 rir_isis_i1rin1\le r_i\le n1si1091\le s_i\le 10^9)。接下来的 qq 行中的第 jj 行包含一个整数 ljl_j1ljn1\le l_j\le n)。

输出格式

按顺序对于每个关卡,输出通关所需花费的最小总星币。

6 5 4
1 7
3 2
2 3
5 3
2 5
1
2
5
6
5
0
8
14

提示

样例输入/输出 #1 的解释

你可以通过以下动作消耗 55 星币通关第一关:

  1. 角色 5 从房间 2 移动到房间 1。该动作消耗 55 星币。
  2. 角色 5 拾起星星。

你可以通过以下动作消耗 00 星币通关第二关:

  1. 角色 5 拾起星星。

你可以通过以下动作消耗 88 星币通关第三关:

  1. 角色 4 拾起星星。
  2. 角色 4 从房间 5 移动到房间 4。该动作消耗 33 星币。
  3. 角色 4 从房间 4 移动到房间 3。该动作消耗 33 星币。
  4. 角色 4 放下星星。
  5. 角色 2 拾起星星。
  6. 角色 2 从房间 3 移动到房间 2。该动作消耗 22 星币。
  7. 角色 2 放下星星。
  8. 角色 5 拾起星星。

你可以通过以下动作消耗 1414 星币通关第四关:

  1. 角色 2 从房间 3 移动到房间 4,然后到房间 5,然后到房间 6。这些动作总共消耗 3×2=63 \times 2 = 6 星币。
  2. 角色 2 拾起星星。
  3. 角色 2 从房间 6 移动到房间 5,然后到房间 4,然后到房间 3,然后到房间 2。这些动作总共消耗 4×2=84 \times 2 = 8 星币。
  4. 角色 2 放下星星。
  5. 角色 5 拾起星星。

翻译由 DeepSeek 完成