#P51454. 「JOISC 2021 Day3」保镖

「JOISC 2021 Day3」保镖

题目描述

题目译自 JOISC 2021 Day3 T2「ボディーガード / Bodyguard

JOI 街是一条贯通东西的长街。我们将其抽象为一条数轴。

从现在起,将有 NN 个贵宾(VIP)来到 JOI 街并大逛特逛。VIP 们以 11NN 编号。VIP i (1iN)i\ (1 \le i \le N) 将会在时刻 TiT_i 从坐标 AiA_i 前往坐标 BiB_i。其速度是每单位时间 11 单位长度。
如果 Ai<BiA_i < B_i,VIP ii 将会以不变的速度在正方向上移动。类似地,如果 Ai>BiA_i > B_i,VIP ii 将会以不变的速度在负方向上移动。

一个保镖的工作是在 JOI 街上巡逻并保护 VIP 们。为了保护一个 VIP,很有必要和 TA 一起逛一会街,同时保护 TA。当然,允许保镖在他们逛街逛到一半时才开始保护,或在他们逛街结束前就停止保护。开始和停止保护的时刻不必为一个整数
特别地,尽管可能有多个 VIP 在同一坐标,保镖也最多只能保护一个 VIP。

保镖可以在 JOI 街上以每单位时间最多 11 单位长度的速度随意走动。在他们停止保护一个 VIP 之后,可以去到另一个地方再开始保护另一个 VIP。如果一个保镖和 VIP ii 一起逛街,那么 VIP 将会对他们一起走过的距离的每单位长度给保镖 CiC_i 元小费。这里保证 CiC_i 是偶整数。

作为一个安保公司的员工,您正在计划 QQ 份保护 VIP 的方案。这些方案以 11QQ 编号。对于方案 j (1jQ)j\ (1 \le j \le Q),一个保镖在时刻 PjP_j 时从坐标 XjX_j 开始工作。您的任务是分别最大化每个方案中的保镖能够得到的总小费。

请您编写一个程序对于给定的 VIP 和保镖的信息,计算每一个方案中保镖的最大总小费。

在此题的限制下,可以证明答案一定是个整数。

输入格式

第一行,两个整数 N,QN,Q
以下 NN 行,每行四个整数 Ti,Ai,Bi,CiT_i,A_i,B_i,C_i
以下 QQ 行,每行两个整数 Pj,XjP_j,X_j

输出格式

输出 QQ 行到标准输出。第 j (1jQ)j\ (1 \le j \le Q) 行应当包含一个整数表示方案 jj 中保镖能得到的最大总小费。

数据范围

对于所有数据,满足

  • 1N28001 \le N \le 2\,800
  • 1Q30000001 \le Q \le 3\,000\,000
  • 1Ti1000000000 (1iN)1 \le T_i \le 1\,000\,000\,000\ (1 \le i \le N)
  • 1Ai1000000000 (1iN)1 \le A_i \le 1\,000\,000\,000\ (1 \le i \le N)
  • 1Bi1000000000 (1iN)1 \le B_i \le 1\,000\,000\,000\ (1 \le i \le N)
  • 1Ci1000000000 (1iN)1 \le C_i \le 1\,000\,000\,000\ (1 \le i \le N)
  • AiBi (1iN)A_i \ne B_i\ (1 \le i \le N)
  • 1Ci1000000000 (1iN)1 \le C_i \le 1\,000\,000\,000\ (1 \le i \le N)
  • CiC_i 是偶整数 (1iN)(1 \le i \le N)
  • 1Pj1000000000 (1jQ)1 \le P_j \le 1\,000\,000\,000\ (1 \le j \le Q)
  • 1Xj1000000000 (1jQ)1 \le X_j \le 1\,000\,000\,000\ (1 \le j \le Q)

各子任务分值及限制见下表:

子任务编号 分值 限制
11 66 Ti3000T_i \le 3\,000Ai3000A_i \le 3\,000Bi3000 (1iN)B_i \le 3\,000\ (1 \le i \le N)Pj3000P_j \le 3\,000Xj3000 (1jQ)X_j \le 3\,000\ (1 \le j \le Q)
22 77 Q=1Q=1
33 1515 Q3000Q \le 3\,000
44 2020 Q40000Q \le 40\,000
55 5252 -

样例 1

2 2
1 2 1 4
3 1 3 2
1 2
3 3
8
2

在方案 11 中,一个保镖可以按照以下方式得到 4+4=84+4=8 元。

  1. 在时刻 11 从坐标 22 开始工作。
  2. 在时刻 11 到时刻 22 间保护 VIP 11。由于他们一起走过了 11 单位长度,他得到 4×1=44 \times 1 = 4 元的小费。
  3. 在时刻 22 到时刻 33 间留在坐标 11
  4. 在时刻 33 到时刻 55 间保护 VIP 22。由于他们一起走过了 22 单位长度,他得到 2×2=42 \times 2 = 4 元的小费。

由于这是最大值,所以第一行输出 88

在方案 22 中,一个保镖可以按照以下方式得到 22 元。

  1. 在时刻 33 从坐标 33 开始工作。
  2. 在时刻 33 到时刻 44 间从坐标 33 移动到坐标 22
  3. 在时刻 44 到时刻 55 间保护 VIP 22。由于他们一起走过了 11 单位长度,他得到 2×1=22 \times 1 = 2 元的小费。

由于这是最大值,所以第二行输出 22

这组样例满足子任务 1,3,4,51,3,4,5 的限制。

3 2
3 1 5 2
1 4 1 4
4 2 4 4
2 2
6 3
15
0

在方案 11 中,一个保镖可以按照以下方式得到 4+1+8+2=154+1+8+2=15 元。

  1. 在时刻 22 从坐标 22 开始工作。
  2. 在时刻 22 到时刻 2.52.5 间从坐标 22 移动到坐标 2.52.5
  3. 在时刻 2.52.5 到时刻 3.53.5 间保护 VIP 22。由于他们一起走过了 11 单位长度,他得到 4×1=44 \times 1 = 4 元的小费。
  4. 在时刻 3.53.5 到时刻 44 间保护 VIP 11。由于他们一起走过了 0.50.5 单位长度,他得到 2×0.5=12 \times 0.5 = 1 元的小费。
  5. 在时刻 44 到时刻 66 间保护 VIP 33。由于他们一起走过了 22 单位长度,他得到 4×2=84 \times 2 = 8 元的小费。
  6. 在时刻 66 到时刻 77 间保护 VIP 11。由于他们一起走过了 11 单位长度,他得到 2×1=42 \times 1 = 4 元的小费。

由于这是最大值,所以第一行输出 1515

在方案 22 中,保镖在时刻 66 从坐标 33 开始工作。然而,TA 无法保护任何 VIP。因此最大总小费为 00 元。因此第二行输出 00

这组样例满足子任务 1,3,4,51,3,4,5 的限制。

5 5
8 1 4 10
8 3 7 6
1 4 6 2
3 9 5 4
6 1 9 6
7 6
6 8
1 3
9 4
2 4
30
27
48
30
48

这组样例满足子任务 1,3,4,51,3,4,5 的限制。