#HK4937. 「EGOI2021」灯笼
「EGOI2021」灯笼
题目描述
题目译自 European Girls' Olympiad in Informatics 2021 Day1 T4. Lanterns
农夫约翰带着他的牛群去阿尔卑斯山远足!天色渐晚,远足活动结束了。然而,一些牛仍然被困在山脉各处,约翰必须把它们全部救回来!
牛群所在的山脉可以表示为二维垂直平面上的 个顶点,我们称之为山峰。这些山峰按顺序编号为 到 。山峰 的坐标为 ,其中 表示山峰 的海拔。保证 是 到 的一个排列。(即,对于每个 ,恰好有一个 满足 。)
对于每个 ,山峰 和 之间通过一条直线段连接。
由于是夜晚,约翰除非携带至少一个能用的灯笼,否则无法在山脉中移动。幸运的是,有 个灯笼可供购买。对于每个 ,灯笼 可以在山峰 以 法郎的价格购买。
但灯笼 只有当约翰当前海拔在 范围内时才有效。换句话说,当约翰的海拔严格小于 或严格大于 时,灯笼 无法工作。注意,灯笼离开其有效范围不会损坏。例如,当约翰的海拔超过 时,灯笼 会停止工作,但一旦回到 或以下,灯笼又会恢复正常。
如果约翰当前在山峰 ,他可以执行以下三种操作之一:
- 购买山峰 上可用的一个灯笼。购买后,灯笼可永久使用。
- 如果 ,他可以步行到山峰 。
- 如果 ,他可以步行到山峰 。
约翰绝不能在没有有效灯笼的情况下移动。只有当他全程至少有一个已拥有的灯笼有效时,他才能在相邻山峰间步行。(整个步行过程中不必始终是同一个灯笼有效。)
例如,假设约翰当前位于海拔 的山峰,想步行到海拔 的相邻山峰。如果他有有效范围为 和 的灯笼,他就可以完成这段步行。
但如果他的灯笼有效范围仅为 和 ,他暂时无法步行到目标山峰:例如,在海拔 时,他的灯笼都无法工作。
你的任务是回答多个独立的问题。对于每个满足 的 ,假设约翰从山峰 开始,购买灯笼 。为了搜索整个山脉,他必须通过重复上述三种操作,至少访问每个山峰一次。对于每个这样的 ,计算约翰搜索整个山脉所需的最小总法郎数。(此费用包括初始购买灯笼 的费用。)
输入格式
第一行包含 和 ,分别表示山峰数量和可购买的灯笼数量。
第二行包含 个用空格分隔的整数 ,表示每个山峰的海拔。保证 是 到 的一个排列。
接下来的 行,每行包含四个用空格分隔的整数 $(1 \leq p_j \leq n, 1 \leq c_j \leq 10^6, 1 \leq a_j \leq b_j \leq n)$,分别表示可购买灯笼 的山峰、其费用及其有效海拔范围。
输出格式
对于每个 ,输出一行:
- 如果 不在 范围内,输出 。
- 如果约翰从购买灯笼 开始无法搜索整个山脉,输出 。
- 否则,输出约翰从购买灯笼 开始搜索整个山脉所需的最小总法郎数。
7 8
4 2 3 1 5 6 7
3 1 2 4
1 2 1 3
4 4 1 7
6 10 1 7
6 20 6 6
6 30 5 5
7 40 1 6
7 50 7 7
7
-1
4
10
30
-1
-1
-1
如果约翰从山峰 购买灯笼 开始,他可以按以下顺序操作:
- 向左步行两次到山峰 。
- 购买灯笼 。
- 向右步行到山峰 。
- 购买灯笼 。
- 向右步行到山峰 。
此时,约翰已经至少访问了每个山峰一次,总共花费 法郎。
约翰无法从购买灯笼 、 或 开始,因为这些灯笼在其购买地点的海拔下无法工作。因此,这些灯笼的答案为 。
如果约翰从购买灯笼 或 开始,他无需购买其他灯笼即可访问所有山峰。
如果约翰从购买灯笼 开始,他必须稍后购买灯笼 。
如果约翰从购买灯笼 开始,他会被困在山峰 。即使他再购买灯笼 ,他仍然无法从山峰 步行到山峰 。
数据范围与提示
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| ; | ||
| 无附加限制 |