| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 4 초 | 1024 MB | 58 | 7 | 6 | 12.000% |
$N$ 개의 정점으로 이루어진 트리가 있다. 정점은 $0$번부터 $N-1$ 번까지 번호가 매겨져 있다. 추가로, 길이 $N$ 의 정수 수열 $A_0, A_1, \ldots, A_{N - 1}$ 이 주어진다.
$0 \le l < r \le N$ 을 만족하는 정수 $l, r$, 그리고 정점 $v, d$, 음이 아닌 정수 $k$ 에 대해 $f(l, r, v, d, k) = 10^{-999999999} dist(v, d) + \sum_{i = l}^{r - 1} (A_i + k) dist(v, i)$ 로 정의하자. 여기서 $dist(a, b)$ 는 두 정점 $a, b$ 를 잇는 최단 경로의 길이이다.
다음과 같은 쿼리를 수행해야 한다.
l r d k: $f(l, r, v, d, k)$ 를 최소화하는 $v$ 를 출력하라. 이러한 $v$ 가 유일함을 증명할 수 있다.쿼리는 온라인으로 주어짐에 유의하라. 자세한 것은 입력 부분을 참고하면 된다.
첫째 줄에 트리의 크기 N이 주어진다. (1 ≤ N ≤ 150,000)
다음 N-1 개의 줄에 두 정수 u, v 가 주어진다. 두 정점 u, v를 잇는 간선이 존재함을 뜻한다. (0 ≤ u, v ≤ N-1)
다음 줄에 수열 A0, A1, ..., An-1 이 주어진다. (0 ≤ Ai ≤ 150,000)
다음 줄에 쿼리의 개수 Q가 주어진다. (1 ≤ Q ≤ 150,000)
다음 Q개의 줄에 네 정수 a, b, z, d가 주어진다. (0 ≤ a, b, d ≤ n - 1, 0 ≤ z ≤ 150,000)
$X_i$ 를 $i$ 번 쿼리에 대한 답이라고 하자 ($0 \le i \le Q - 1$). $i$ 번 쿼리에 대해, $l, r, k$ 는 다음과 같은 식에 의해 복원할 수 있다. $d$ 는 입력으로 주어진 것을 그대로 사용하면 된다.
$Q$ 개의 줄에 걸쳐 문제의 정답을 출력하라.
5 0 1 1 3 3 2 3 4 1000 10 1 100 10000 15 0 0 0 0 0 1 150000 1 2 0 0 2 3 0 150000 3 4 2 150000 4 1 1 149975 0 0 0 149965 1 1 2 149951 2 1 4 149901 3 3 4 149804 4 2 0 149745 0 3 1 149639 1 1 4 149517 2 4 3 149375 3 0 1 149160 4
0 0 0 1 4 1 1 3 4 2 3 3 3 4 4