Cho một cây gồm n đỉnh (đánh số 1 đến n) với n−1 cạnh, mỗi cạnh có độ dài 1. Với mỗi đỉnh v, định nghĩa S(v) là tổng khoảng cách từ v tới tất cả các đỉnh khác.
Hãy tìm giá trị maxvS(v) — tổng khoảng cách lớn nhất. Sử dụng kỹ thuật đổi gốc (rerooting DP) để tính mọi S(v) trong O(n).
Ví dụ: Đường thẳng 1−2−3: S(1)=1+2=3, S(2)=1+1=2, S(3)=3, nên đáp án là 3.
Dòng đầu chứa n. n−1 dòng tiếp theo, mỗi dòng hai số u v là một cạnh.
1≤n≤2⋅105, 1≤u,v≤n.
In ra một số nguyên là tổng khoảng cách lớn nhất.
Ví dụ:
Đầu vào:
3
1 2
2 3
Đầu ra:
3
Giải thích:
Đang tải editor...