loj#P2872. 「JOISC 2014 Day1」巴士走读

「JOISC 2014 Day1」巴士走读

题目描述

感谢 PoPoQQQ 提供的翻译,已获原译者授权搬运。

题目译自 JOISC 2014 Day1 T1「バス通学

大学生 JOI 君每天乘坐巴士走读。
JOI 君的家和学校都在 IOI 市内。IOI 市内共有 NN 个巴士站点,编号为 1N1\sim N,离 JOI 家最近的站点为 11 号站点,离大学最近的站点为 NN 号站点。
IOI 市内共有 MM 辆巴士,每辆巴士一天只跑一次,从某一时刻某一停靠点出发,在某一时刻到达另一个站点。运行途中不可以下车。
JOI 君每天要乘坐一次以上的巴士到达学校。我们可以无视 JOI 君换车的时间,换言之,为了换乘某个时刻从某个停靠点出发的巴士,只需要在该巴士的出发时间或之前到达站点就可以了。此外,多次在某个站点换乘也是可以的。
在这样的条件下,JOI 君想知道自己应该何时从家中出发才能按时赶到学校。然而,学校每天开始上课的时间都不同。在某 QQ 天里,每天到达 NN 号站点的最晚时间都是已知的,JOI 君想知道,他最晚何时到达 11 号站点才能及时到校。
现在给你巴士的运营信息,以及这 QQ 天里每天到达 NN 号站点的最晚时间,请你求出每天 JOI 君最晚何时到达 11 号站点。

输入格式

第一行两个空格分隔的正整数 NNMM,表示 IOI 市内有 NN 个巴士站点和 MM 辆巴士。
接下来 MM 行,第 ii(1iM)(1\le i\le M) 有四个空格分隔的整数 Ai,A_i, Bi,B_i, Xi,X_i, YiY_i (1AiN,(1\le A_i\le N, 1BiN,1\le B_i\le N, AiBi)A_i≠B_i),表示第 ii 辆巴士在时刻 XiX_i 从停靠点 AiA_i 出发,在时刻 YiY_i 到达停靠点 BiB_i。时刻从半夜 12 点开始计算,单位为毫秒。
接下来一行一个整数 QQ,含义如题目中所示。
接下来 QQ 行,第 ii(1iQ)(1\le i\le Q) 有一个整数 LiL_i,表示第 ii 天最迟 LiL_i 时刻到达 NN 号站点。

输出格式

输出 QQ 行,第 ii(1iQ)(1\le i\le Q) 一个整数,表示 JOI 君第 ii 天最迟到达 11 号站点的时刻。 如果无法在时限内到达,输出 -1\texttt{-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

数据范围与提示

对于所有数据,2N105,2\le N\le 10^5, 1M3×105,1\le M\le 3\times 10^5, 0Xi<Yi<864000000\le X_i<Y_i<86400000 (=24×60×60×1000),(=24\times 60\times 60\times 1000), 1Q105,1\le Q\le 10^5, 0Li<864000000\le L_i<86400000

子任务编号 分值 N,MN, M QQ
1 20 N,M2000N, M\le 2000 Q=1Q=1
2 15
3 Q=1Q=1
4 50