거리 합 최대화
시간 제한3초메모리 제한1024 MB
트리가 주어지고, 각 질의 (u, v)에 대해 모든 정점 x에 걸친 dist(x,u) + dist(x,v)의 최댓값을 구합니다.
문제
개의 정점으로 이루어진 트리(사이클이 없는 연결된 무방향 그래프)가 주어진다. 정점은 번부터 번까지 번호가 매겨져 있고, 간선은 번부터 번까지 번호가 매겨져 있다.
아래의 쿼리를 처리하는 프로그램을 작성하시오.
- : 정점 ()에 대해 + 의 최댓값을 출력한다. ()
여기서 는 정점 에서 정점 까지 가는 최단경로 상의 간선 개수이다. 트리의 모든 정점 에 대해 이다.
입력
첫째 줄에 트리의 정점 수 ()이 주어진다.
다음 개의 줄에는 트리의 정보가 주어진다. 번째 줄에는 번 간선이 연결하는 두 정점 번호가 공백을 사이에 두고 주어진다.
다음 줄에 쿼리의 수 ()가 주어진다. 이어지는 개의 줄에는 쿼리가 한 줄에 하나씩 주어진다.
출력
개의 쿼리에 대한 답을 순서대로 한 줄에 하나씩 출력한다.