#HK4937. 「EGOI2021」灯笼

「EGOI2021」灯笼

题目描述

题目译自 European Girls' Olympiad in Informatics 2021 Day1 T4. Lanterns

农夫约翰带着他的牛群去阿尔卑斯山远足!天色渐晚,远足活动结束了。然而,一些牛仍然被困在山脉各处,约翰必须把它们全部救回来!

牛群所在的山脉可以表示为二维垂直平面上的 nn 个顶点,我们称之为山峰。这些山峰按顺序编号为 11nn。山峰 ii 的坐标为 (i,hi)\left(i, h_i\right),其中 hih_i 表示山峰 ii 的海拔。保证 h1,h2,,hnh_1, h_2, \ldots, h_n11nn 的一个排列。(即,对于每个 j=1,,nj=1, \ldots, n,恰好有一个 i{1,,n}i \in \{1, \ldots, n\} 满足 hi=jh_i = j。)

对于每个 ii (1i<n)(1 \leq i < n),山峰 iii+1i+1 之间通过一条直线段连接。

由于是夜晚,约翰除非携带至少一个能用的灯笼,否则无法在山脉中移动。幸运的是,有 kk 个灯笼可供购买。对于每个 jj (1jk)(1 \leq j \leq k),灯笼 jj 可以在山峰 pjp_jcjc_j 法郎的价格购买。

但灯笼 jj 只有当约翰当前海拔在 [aj,bj]\left[a_j, b_j\right] 范围内时才有效。换句话说,当约翰的海拔严格小于 aja_j 或严格大于 bjb_j 时,灯笼 jj 无法工作。注意,灯笼离开其有效范围不会损坏。例如,当约翰的海拔超过 bjb_j 时,灯笼 jj 会停止工作,但一旦回到 bjb_j 或以下,灯笼又会恢复正常。

如果约翰当前在山峰 pp,他可以执行以下三种操作之一:

  • 购买山峰 pp 上可用的一个灯笼。购买后,灯笼可永久使用。
  • 如果 p>1p > 1,他可以步行到山峰 p1p-1
  • 如果 p<np < n,他可以步行到山峰 p+1p+1

约翰绝不能在没有有效灯笼的情况下移动。只有当他全程至少有一个已拥有的灯笼有效时,他才能在相邻山峰间步行。(整个步行过程中不必始终是同一个灯笼有效。)

例如,假设约翰当前位于海拔 44 的山峰,想步行到海拔 11 的相邻山峰。如果他有有效范围为 [1,3][1,3][3,4][3,4] 的灯笼,他就可以完成这段步行。

但如果他的灯笼有效范围仅为 [1,1][1,1][2,5][2,5],他暂时无法步行到目标山峰:例如,在海拔 1.471.47 时,他的灯笼都无法工作。

你的任务是回答多个独立的问题。对于每个满足 ajhpjbja_j \leq h_{p_j} \leq b_jjj (1jk)(1 \leq j \leq k),假设约翰从山峰 pjp_j 开始,购买灯笼 jj。为了搜索整个山脉,他必须通过重复上述三种操作,至少访问每个山峰一次。对于每个这样的 jj,计算约翰搜索整个山脉所需的最小总法郎数。(此费用包括初始购买灯笼 jj 的费用。)

输入格式

第一行包含 nnkk (1n2000,1k2000)(1 \leq n \leq 2000, 1 \leq k \leq 2000),分别表示山峰数量和可购买的灯笼数量。

第二行包含 nn 个用空格分隔的整数 h1,h2,,hnh_1, h_2, \ldots, h_n (1hin)(1 \leq h_i \leq n),表示每个山峰的海拔。保证 hih_i11nn 的一个排列。

接下来的 kk 行,每行包含四个用空格分隔的整数 pj,cj,aj,bjp_j, c_j, a_j, b_j $(1 \leq p_j \leq n, 1 \leq c_j \leq 10^6, 1 \leq a_j \leq b_j \leq n)$,分别表示可购买灯笼 jj 的山峰、其费用及其有效海拔范围。

输出格式

对于每个 jj (1jk)(1 \leq j \leq k),输出一行:

  • 如果 hpjh_{p_j} 不在 [aj,bj]\left[a_j, b_j\right] 范围内,输出 1-1
  • 如果约翰从购买灯笼 jj 开始无法搜索整个山脉,输出 1-1
  • 否则,输出约翰从购买灯笼 jj 开始搜索整个山脉所需的最小总法郎数。
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

如果约翰从山峰 33 购买灯笼 11 开始,他可以按以下顺序操作:

  • 向左步行两次到山峰 11
  • 购买灯笼 22
  • 向右步行到山峰 44
  • 购买灯笼 33
  • 向右步行到山峰 77

此时,约翰已经至少访问了每个山峰一次,总共花费 1+2+4=71+2+4=7 法郎。

约翰无法从购买灯笼 226677 开始,因为这些灯笼在其购买地点的海拔下无法工作。因此,这些灯笼的答案为 1-1

如果约翰从购买灯笼 3344 开始,他无需购买其他灯笼即可访问所有山峰。

如果约翰从购买灯笼 55 开始,他必须稍后购买灯笼 44

如果约翰从购买灯笼 88 开始,他会被困在山峰 77。即使他再购买灯笼 77,他仍然无法从山峰 77 步行到山峰 66

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 99 n20,k6n\leq 20, k\leq 6
22 1212 n70,k70n\leq 70, k\leq 70
33 2323 n300,k300n\leq 300, k\leq 300hi=ih_i=i (1in)(1\leq i\leq n)
44 1616 n300,k300n\leq 300, k\leq 300
55 4040 无附加限制