Cho một cây (đồ thị vô hướng liên thông không có chu trình) gồm $N$ đỉnh. Các đỉnh được đánh số từ $1$ đến $N$, và các cạnh được đánh số từ $1$ đến $(N-1)$.
Hãy viết chương trình thực hiện các truy vấn sau:
- $u$ $v$ : Với mỗi đỉnh $x$ ($1 \le x \le N$), hãy in ra giá trị lớn nhất của $\operatorname{dist}(x, u) + \operatorname{dist}(x, v)$. ($1 \le u, v \le N$)
Trong đó, $\operatorname{dist}(x, y)$ được định nghĩa là số lượng cạnh trên đường đi ngắn nhất từ đỉnh $x$ đến đỉnh $y$. Với mọi đỉnh $x$ trong cây, $\operatorname{dist}(x, x) = 0$.
Dữ liệu vào
Dòng đầu tiên chứa số lượng đỉnh $N$ của cây. ($2 \le N \le 300000$)
$(N-1)$ dòng tiếp theo chứa thông tin về cây. Dòng thứ $i$ chứa hai số nguyên cách nhau bởi dấu cách, biểu thị hai đỉnh mà cạnh thứ $i$ kết nối.
Dòng tiếp theo chứa số lượng truy vấn $Q$. ($2 \le Q \le 300000$)
$Q$ dòng tiếp theo, mỗi dòng chứa thông tin của một truy vấn.
Dữ liệu ra
In ra kết quả của các truy vấn theo thứ tự trên $Q$ dòng.
Ví dụ
Dữ liệu vào 1
5 1 2 2 3 2 4 4 5 3 1 3 1 5 2 3
Dữ liệu ra 1
6 5 5