QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 256 MB Points totaux : 100

#1396. Автобус

Statistiques

Студент JOI ездит в университет на автобусе. И его дом, и университет находятся в городе IOI. В городе $N$ автобусных остановок, пронумерованных от $1$ до $N$. Ближайшая к дому JOI остановка имеет номер $1$, а ближайшая к университету — номер $N$.

В городе IOI курсируют $M$ автобусов. Каждый из них один раз в день отправляется с заданной остановки в заданное время и прибывает на заданную остановку в заданное время. Ни одна поездка не пересекает границу между днями. JOI не может сесть в автобус или выйти из него посреди поездки.

Каждый день JOI добирается в университет на одном или нескольких автобусах с пересадками. Временем, необходимым на пересадку, можно пренебречь. Иными словами, чтобы пересесть на автобус, отправляющийся с некоторой остановки в некоторый момент, достаточно прибыть на эту остановку не позднее момента его отправления. Одну и ту же остановку можно посещать несколько раз.

При этих условиях JOI хочет знать, когда ему следует выйти из дома, чтобы успеть в университет к занятиям. Время начала первого занятия зависит от дня. Для каждого из $Q$ дней известно, к какому моменту нужно прибыть на остановку $N$, чтобы успеть к занятиям. Каков для каждого дня самый поздний момент, к которому JOI должен прибыть на остановку $1$, чтобы успеть?

Задание

Дана информация о движении автобусов. Также для каждого из $Q$ дней дан крайний срок прибытия на остановку $N$. Для каждого дня найдите самый поздний момент, к которому JOI должен прибыть на остановку $1$.

Входные данные

Считайте следующие данные со стандартного ввода.

  • В первой строке записаны два целых числа $N$, $M$, разделённые пробелом. В городе IOI имеется $N$ остановок и курсирует $M$ автобусов.
  • В $i$-й из следующих $M$ строк ($1\le i\le M$) записаны четыре целых числа $A_i$, $B_i$, $X_i$, $Y_i$ ($1\le A_i\le N$, $1\le B_i\le N$, $A_i\ne B_i$), разделённые пробелами. Автобус $i$ отправляется с остановки $A_i$ в момент $X_i$ и прибывает на остановку $B_i$ в момент $Y_i$. Время задаётся в миллисекундах, прошедших с полуночи.
  • В следующей строке записано целое число $Q$ — число дней, для которых задан крайний срок прибытия на остановку $N$.
  • В $j$-й из следующих $Q$ строк ($1\le j\le Q$) записано целое число $L_j$. В день $j$ необходимо прибыть на остановку $N$ не позднее момента $L_j$.

Выходные данные

Выведите $Q$ строк в стандартный вывод. В $j$-й строке ($1\le j\le Q$) выведите целое число — самый поздний момент, к которому JOI должен прибыть на остановку $1$ в день $j$. Если успеть в университет к занятиям невозможно, выведите -1.

Ограничения

Все входные данные удовлетворяют следующим условиям.

  • $2\le N\le 100\,000$.
  • $1\le M\le 300\,000$.
  • $0\le X_i<Y_i<86\,400\,000\ (=24\times60\times60\times1000)$ ($1\le i\le M$).
  • $1\le Q\le 100\,000$.
  • $0\le L_j<86\,400\,000\ (=24\times60\times60\times1000)$ ($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

Примечание

Прибыть на остановку $5$ не позднее момента $10$ невозможно.

Чтобы прибыть не позднее момента $30$, можно сесть на четвёртый автобус в момент $5$.

Чтобы прибыть не позднее момента $60$, можно действовать следующим образом.

  • Сесть на первый автобус в момент $10$.
  • Прибыть на остановку $2$ в момент $25$, подождать 1 миллисекунду и сесть на третий автобус.
  • Прибыть на остановку $5$ в момент $50$.

Чтобы прибыть не позднее момента $100$, можно действовать следующим образом.

  • Сесть на пятый автобус в момент $30$.
  • Прибыть на остановку $4$ в момент $40$, подождать 10 миллисекунд и сесть на шестой автобус.
  • Прибыть на остановку $5$ в момент $70$.

Входные данные 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.