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