나무에 내리는 햇빛

u에서 v까지 트리 경로 위에서 질의 방향과의 내적이 가장 작은 노드를 모두 보고합니다.

어려움8트리세그먼트 트리기하아직 제출이 없습니다시간 제한5초메모리 제한256 MB

문제

나무를 바로 위에서 내려다보자. 가지를 간선으로, 가지가 갈라지거나 끝나는 지점을 정점으로 보면 위에서 본 모습은 평면에 그려진 그래프가 된다. 그림에서 간선끼리 교차할 수는 있지만 그래프 자체는 트리다. 즉 연결되어 있고 사이클이 없으며, 2차원 좌표가 하나씩 붙은 정점 nn개와 간선 n1n - 1개로 이루어진다.

질의는 네 수 uu, vv, xx, yy로 주어진다. uuvv는 정점 두 개이고, 벡터 (x,y)(x, y)는 햇빛이 나아가는 방향이다. 햇빛은 광선 하나가 아니라 무한히 먼 곳에서 출발해 (x,y)(x, y) 방향으로 나아가는 평행한 광선의 다발이다. 아래 그림은 (x,y)=(2,1)(x, y) = (2, 1)인 경우로, 빛은 왼쪽 아래에서 들어오고 모든 광선은 벡터 (2,1)(2, 1)과 평행하다.

(2, 1) 방향으로 나아가는 평행 광선

빛이 먼저 닿는 정점일수록 더 따뜻하다. 광선이 (x,y)(x, y) 방향으로 나아가므로, 좌표가 (px,py)(p_x, p_y)인 정점은 xpx+ypyx p_x + y p_y가 작을수록 빛을 먼저 받는다. 개미가 uu에서 vv까지 트리의 유일한 최단 경로를 따라 이동한다. 이 경로 위의 정점 가운데 햇빛이 가장 먼저 닿는 정점, 즉 xpx+ypyx p_x + y p_y가 최소인 정점을 모두 구하라.

정점 14개짜리 트리

두 번째 그림은 정점 14개로 이루어진 트리다. u=14u = 14, v=4v = 4, x=1x = 1, y=0y = 0이면 경로는 14, 11, 1, 3, 4이고 빛이 왼쪽에서 들어오므로 정점 3과 11에 햇빛이 가장 먼저 닿는다. u=13u = 13, v=9v = 9, x=1x = 1, y=1y = -1이면 경로는 13, 11, 1, 6, 9이고 빛이 왼쪽 위에서 들어오므로 정점 1, 6, 11에 햇빛이 가장 먼저 닿는다.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다 (T10T \le 10). 각 테스트 케이스의 첫 줄에는 정점의 수 nn이 주어진다 (1n1051 \le n \le 10^5). 다음 nn개 줄에는 정점의 좌표가 한 줄에 하나씩 주어지며, 그중 ii번째 줄이 정점 ii의 좌표다 (x,y105|x|, |y| \le 10^5). 좌표가 같은 정점이 여러 개 있을 수 있다. 다음 n1n - 1개 줄에는 간선이 잇는 두 정점의 번호가 주어지고, 번호는 1 이상 nn 이하다. 입력은 항상 올바른 트리다. 다음 줄에는 질의의 수 QQ가 주어진다 (1Q1.6×1051 \le Q \le 1.6 \times 10^5). 다음 QQ개 줄에는 질의가 uu vv xx yy 형태로 하나씩 주어진다 (1u,vn1 \le u, v \le n, x,y105|x|, |y| \le 10^5). 벡터 (x,y)(x, y)는 영벡터가 아니고, uuvv는 같을 수 있다. 모든 테스트 케이스가 최대 크기는 아니지만, 정점 수와 질의 수가 가장 큰 케이스가 적어도 하나 있다.

출력

각 테스트 케이스마다 먼저 Case k:를 한 줄에 출력한다. kk는 1부터 세는 테스트 케이스 번호다. 그 뒤로 질의마다 한 줄씩, 햇빛이 가장 먼저 닿는 정점의 번호를 오름차순으로 정렬해 공백 하나로 구분해 출력한다. 줄의 처음과 끝에는 공백을 넣지 않는다. 입력 전체에서 출력하는 번호는 최대 3×1053 \times 10^5개다.