QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 256 MB مجموع النقاط: 100

#1396. 公交车

الإحصائيات

大学生 JOI 君每天乘坐公交车上学。JOI 君的家和学校都在 IOI 市内。IOI 市内有 $N$ 个公交车站,编号从 $1$ 到 $N$。JOI 君家最近的车站是 $1$ 号车站,学校最近的车站是 $N$ 号车站。

IOI 市内有 $M$ 辆公交车,每辆车每天运行一次,在规定的时间从规定的车站出发,并在规定的时间到达规定的车站。不存在跨越日期的运行。JOI 君不能在公交车运行途中上下车。

JOI 君每天通过换乘一辆或多辆公交车去学校。假设 JOI 君换乘公交车所需的时间可以忽略不计。也就是说,为了换乘某时刻从某个车站出发的公交车,只要在该公交车的出发时刻或之前到达该车站即可。此外,同一个车站可以多次使用。

在这样的条件下,JOI 君想知道他应该在什么时候出门才能准时到达学校。不过,大学第一节课开始的时间每天都不同。对于给定的 $Q$ 天,已知为了赶上当天的课程,必须在什么时间之前到达 $N$ 号车站。请针对每一天,求出 JOI 君最晚需要在什么时间之前到达 $1$ 号车站才能赶上课程。

题目描述

给定公交车的运行信息。此外,对于 $Q$ 天中的每一天,给出了必须到达 $N$ 号车站的时间,请针对每一天,求出 JOI 君最晚需要在什么时间之前到达 $1$ 号车站。

输入格式

从标准输入读取以下内容:

  • 第 $1$ 行包含两个整数 $N, M$,用空格分隔,表示 IOI 市内有 $N$ 个公交车站,有 $M$ 辆公交车运行。
  • 接下来的 $M$ 行中的第 $i$ 行 ($1 \le i \le M$) 包含 $4$ 个整数 $A_i, B_i, X_i, Y_i$ ($1 \le A_i \le N, 1 \le B_i \le N, A_i \neq B_i$),用空格分隔。这表示第 $i$ 辆公交车在时刻 $X_i$ 从 $A_i$ 号车站出发,在时刻 $Y_i$ 到达 $B_i$ 号车站。时刻表示从凌晨 $0$ 点开始经过的毫秒数。
  • 下一行包含一个整数 $Q$,表示已知必须到达 $N$ 号车站的时间的天数为 $Q$ 天。
  • 接下来的 $Q$ 行中的第 $j$ 行 ($1 \le j \le Q$) 包含一个整数 $L_j$,表示在第 $j$ 天必须在时刻 $L_j$ 之前到达 $N$ 号车站。

输出格式

输出 $Q$ 行到标准输出。第 $j$ 行 ($1 \le j \le Q$) 输出一个整数,表示在第 $j$ 天 JOI 君最晚需要在什么时间之前到达 $1$ 号车站。如果无法准时到达学校,则输出 $-1$。

数据范围

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

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

子任务

子任务 1 [20 点]

满足以下条件: $N \le 2\,000$ $M \le 2\,000$ * $Q = 1$

子任务 2 [15 点]

满足以下条件: $N \le 2\,000$ $M \le 2\,000$

子任务 3 [15 点]

  • $Q = 1$

子任务 4 [50 点]

没有额外限制。

样例

输入 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

-1
5
10
30

说明

  • 无法在时刻 $10$ 之前到达 $5$ 号车站。
  • 为了在时刻 $30$ 之前到达,可以在时刻 $5$ 乘坐第 $4$ 辆公交车。
  • 为了在时刻 $60$ 之前到达,可以按以下方式:
    • 时刻 $10$ 乘坐第 $1$ 辆公交车。
    • 时刻 $25$ 到达 $2$ 号车站,等待 $1$ 毫秒后乘坐第 $3$ 辆公交车。
    • 时刻 $50$ 到达 $5$ 号车站。
  • 为了在时刻 $100$ 之前到达,可以按以下方式:
    • 时刻 $30$ 乘坐第 $5$ 辆公交车。
    • 时刻 $40$ 到达 $4$ 号车站,等待 $10$ 毫秒后乘坐第 $6$ 辆公交车。
    • 时刻 $70$ 到达 $5$ 号车站。

输入 2

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

输出 2

0
0
0
1
1
2

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.