#P14418. [JOISC 2014] 巴士走读 / Bus

[JOISC 2014] 巴士走读 / Bus

题目描述

大学生 JOI 君乘坐公交车上下学。JOI 君的家和他所就读的大学都位于 IOI 市内。IOI 市共有 NN 个公交站,编号从 11NN。JOI 君家最近的公交站是公交站 11,大学最近的公交站是公交站 NN

IOI 市内运行的公交车共有 MM 辆,每辆公交车每天仅运行一次,按照预定时刻从指定的公交站出发,并在预定时刻到达指定的公交站。不存在每天多次运行的公交车。JOI 君在途中不能从一辆公交车换乘到另一辆公交车。

JOI 君每天乘坐一辆或多辆公交车前往大学。JOI 君换乘公交车所需的时间可以忽略不计。换句话说,只要在某个时刻有公交车从当前所在的公交站出发,他就可以换乘该车,前提是该车的发车时刻或更早之前他已经到达该公交站。此外,他可以多次利用同一公交站。

在上述条件下,JOI 君希望知道,每天从家出发后,是否能在上课前抵达大学。但大学每天第一节课的开始时间各不相同。已知在接下来的 QQ 天里,每天为了赶上第一节课,他最晚必须在公交站 NN 到达。对于每一天,JOI 君想知道,最晚何时必须从公交站 11 出发,才能赶上当天的课程。

题目

给定公交车运行的相关信息,以及接下来 QQ 天中每天为了赶上课程必须到达公交站 NN 的最晚时间,对于每一天,求出 JOI 君最晚必须在何时从公交站 11 出发才能赶上当天的课程。

输入格式

从标准输入读取以下输入数据:

  • 11 行包含两个整数 NNMM,以空格分隔,表示 IOI 市内共有 NN 个公交站,有 MM 辆公交车运行。
  • 接下来的 MM 行中,第 ii 行(1iM1 \le i \le M)包含四个整数 AiA_iBiB_iXiX_iYiY_i(满足 1AiN1 \le A_i \le N1BiN1 \le B_i \le NAiBiA_i \ne B_i),以空格分隔。这表示第 ii 辆公交车在时刻 XiX_i 从公交站 AiA_i 出发,在时刻 YiY_i 到达公交站 BiB_i。其中,时刻是以午夜 00 点起经过的毫秒数表示的。
  • 下一行包含一个整数 QQ,表示给出“必须在公交站 NN 到达”的日期共有 QQ 天。
  • 接下来的 QQ 行中,第 jj 行(1jQ1 \le j \le Q)包含一个整数 LjL_j,表示在第 jj 天,必须在时刻 LjL_j 之前到达公交站 NN

输出格式

向标准输出输出 QQ 行。第 jj 行(1jQ1 \le j \le Q)应输出一个整数,表示在第 jj 天,JOI 君最晚必须在何时到达公交站 11 才能赶上当天的课程。如果无论如何都无法在上课前抵达大学,则输出 1-1

5 6
1 2 10 25
1 2 12 30
2 5 26 50
1 5 5 20
1 4 30 40
4 5 50 70
4
10
30
60
100
-1
5
10
30
3 8
1 2 1 5
1 3 0 1
1 3 2 8
2 3 2 3
2 3 3 4
2 3 4 5
2 3 5 6
2 3 6 7
6
3
4
5
6
7
8
0
0
0
1
1
2

提示

样例 1 解释

无法在时刻 1010 前到达公交站 55

为了在时刻 3030 前到达,只需在时刻 55 乘坐第 44 辆公交车。

为了在时刻 6060 前到达,可以按以下方式操作:

  • 在时刻 1010 乘坐第 11 辆公交车。
  • 在时刻 2525 到达公交站 22,等待 11 毫秒后换乘第 33 辆公交车。
  • 在时刻 5050 到达公交站 55

为了在时刻 100100 前到达,可以按以下方式操作:

  • 在时刻 3030 乘坐第 55 辆公交车。
  • 在时刻 4040 到达公交站 44,等待 1010 毫秒后换乘第 66 辆公交车。
  • 在时刻 7070 到达公交站 55

数据范围

所有输入数据满足以下条件:

  • 2N1000002 \le N \le 100\,000
  • 1M3000001 \le M \le 300\,000
  • $0 \le X_i < Y_i < 86\,400\,000\ (= 24 \times 60 \times 60 \times 1000)$(1iM1 \le i \le M)。
  • 1Q1000001 \le Q \le 100\,000
  • $0 \le L_j < 86\,400\,000\ (= 24 \times 60 \times 60 \times 1000)$(1jQ1 \le j \le Q)。

子任务

子任务 1 [20 分]

满足以下条件:

  • N2000N \le 2000
  • M2000M \le 2000
  • Q=1Q = 1

子任务 2 [15 分]

满足以下条件:

  • N2000N \le 2000
  • M2000M \le 2000

子任务 3 [15 分]

满足以下条件:

  • Q=1Q = 1

子任务 4 [50 分]

无额外限制。

翻译由 Qwen3-235B 完成