시간 제한메모리 제한제출정답맞힌 사람정답 비율
4 초 1024 MB53448.511%

문제

$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$ 는 입력으로 주어진 것을 그대로 사용하면 된다.

  • $a^\prime = (a + \sum_{j = 0}^{i - 1} X_j) \text{ mod } N$
  • $b^\prime = (b + 2 \sum_{j = 0}^{i - 1} X_j) \text{ mod } N$
  • $k = (z + (\sum_{j = 0}^{i - 1} X_j)^2) \text{ mod } 150\,001$
  • $l = min(a^\prime, b^\prime)$
  • $r = 1 + max(a^\prime, b^\prime)$

출력

$Q$ 개의 줄에 걸쳐 문제의 정답을 출력하라.

예제 입력 1

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

예제 출력 1

0
0
0
1
4
1
1
3
4
2
3
3
3
4
4

출처

  • 문제를 번역한 사람: koosaga