시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB143375.000%

문제

Компьютерная система управления станциями на Меркурии состоит из $n$ серверов, пронумерованных от $1$ до $n$. Серверы соединены $(n - 1)$ двусторонними каналами связи, $i$-й из которых соединяет $i$-й и $(i+1)$-й серверы.

С Земли необходимо передать пакет обновления программного обеспечения для компьютерной системы управления. Пакет необходимо установить на каждый сервер. Стоимость передачи пакета обновления с Земли на Меркурий очень высока, поэтому с Земли пакет обновления передаётся только на один сервер. Затем пакет необходимо передать на все остальные серверы по каналам связи, возможно, через другие серверы.

Из-за высокой солнечной радиации на Меркурии передавать пакет обновления по каналам связи можно только в некоторые промежутки времени. Для $i$-го канала связи известен промежуток времени $[l_i, r_i]$, во время которого возможна передача пакета по этому каналу. Пакет передаётся по любому каналу связи мгновенно.

Пакет обновления, переданный на $j$-й сервер, немедленно устанавливается и помещается в специальный буфер памяти, из которого он может быть передан на другие серверы. Пакет находится в буфере памяти $j$-го сервера в течение $t_j$ секунд с момента его получения. Если в момент нахождения пакета в буфере памяти сервера появляется возможность передать его по каналу связи на соседний сервер, на котором пакет обновления пока не установлен, то он немедленно передаётся по этому каналу связи.

Поскольку пакет содержит важные обновления, требуется начать его распространение как можно раньше.

Требуется написать программу, которая для всех $i$ от $1$ до $n$ определяет, возможно ли установить пакет обновления на все серверы, передав его с Земли на $i$-й сервер. Если это возможно, то необходимо определить, в какой минимальный неотрицательный момент времени можно установить пакет на этот сервер, чтобы в результате обновление оказалось установлено на всех серверах.

입력

Первая строка входных данных содержит $n$ --- количество серверов ($1 \le n \le 200\,000$).

Вторая строка содержит $n$ целых чисел $t_1, t_2, \ldots, t_n$, где $t_j$ --- время нахождения пакета в буфере памяти $j$-го сервера ($0 \le t_j \le 10^9$).

Следующие $(n-1)$ строк описывают каналы связи. Для описания $i$-го канала задаются два целых числа $l_i$ и $r_i$ --- границы промежутка времени, на протяжении которого возможна передача пакета по этому каналу ($0 \le l_i \le r_i \le 10^9$).

출력

Выходные данные должны содержать $n$ целых чисел $a_1, a_2, \ldots, a_n$.

Число $a_i$ должно быть равно такому минимальному неотрицательному моменту времени, что при установке пакета обновления на $i$-й сервер в момент $a_i$, пакет будет в итоге установлен на всех серверах. Если такого момента времени для $i$-го сервера не существует, необходимо вывести $a_i = -1$.

서브태스크

번호배점제한
120

$1 \leq n \leq 500$, $0 \leq t_i \leq 500$, $0 \leq r_i \leq 500$

210

$1 \leq n \leq 5000$, $t_i = 5000$, $0 \leq r_i \leq 5000$

310

$1 \leq n \leq 5000$, $0 \leq t_i \leq 5000$, $r_i = 5000$

410

$1 \leq n \leq 5000$, $0 \leq t_i \leq 5000$, $0 \leq r_i \leq 5000$

515

$1 \leq n \leq 200\,000$, $t_i = 10^9$, $0 \leq r_i \leq 10^9$

615

$1 \leq n \leq 200\,000$, $0 \leq t_i \leq 10^9$, $r_i = 10^9$

720

$1 \leq n \leq 200\,000$, $0 \leq t_i \leq 10^9$, $0 \leq r_i \leq 10^9$

예제 입력 1

1
10

예제 출력 1

0

예제 입력 2

2
3 5
6 8

예제 출력 2

3
1

예제 입력 3

3
1 2 4
7 10
3 5

예제 출력 3

-1
5
5

예제 입력 4

4
1 0 3 2
4 6
5 5
7 10

예제 출력 4

5
5
4
-1

힌트

В первом примере имеется всего один сервер, минимальное подходящее время, в которое можно установить на него обновление --- 0.

Во втором примере есть два сервера, передать обновление между которыми можно в промежуток от 6 до 8. Первый сервер хранит обновление в буфере 3 единицы времени, а второй --- 5 единиц времени. Если отправить обновление первому серверу в момент 3, то он передаст его второму серверу в момент 6. Аналогично если отправить обновление второму серверу в момент 1, то он передаст его первому серверу в момент 6.

В третьем примере нельзя передать обновление первому серверу так, чтобы оно передалось третьему серверу, так как канал 2--3 закрывается до того, как открывается канал 1--2. Можно отправить обновление второму или третьему серверу в момент 5. В этот момент канал 2--3 открыт, поэтому его сразу получат второй и третий серверы. В момент 7, когда откроется канал 1--2 обновление ещё будет находиться в буфере второго сервера, и передастся первому серверу.

В четвёртом примере второй сервер хранит пакет 0 единиц времени, а канал 2--3 открыт в промежуток 5--5. Чтобы передать обновление через второй сервер к третьему серверу, оно должно попасть ко второму серверу в момент 5. Если же мы хотим отправить обновление третьему серверу, то это можно сделать в момент 4, при этом оно будет храниться до момента 7 и будет в итоге установлено на все серверы.

채점 및 기타 정보

  • 예제는 채점하지 않는다.
  • 이 문제의 채점 우선 순위는 2이다.