트리와 쿼리 22
시간 제한10초메모리 제한1024 MB
트리의 각 정점에 적힌 값을 두 개씩 교환합니다. 시작점 u에서 w까지 경로의 수열이 사전순으로 가장 큰 w를 찾습니다. 질의는 온라인으로 주어집니다.
문제
개의 정점으로 이루어진 트리가 있다. 정점은 번부터 번까지 번호가 매겨져 있다. 번 정점에는 숫자 가 쓰여 있다. 초기에는 로 설정되어 있다.
를 에서 로 가는 경로 위에 있는 숫자 를 순서대로 늘어 쓴 수열이라고 하자.
다음과 같은 쿼리를 수행해야 한다.
u v: 와 를 바꾼다. 그 후, 를 최대화하는 를 출력한다. 수열은 사전순으로 비교한다.
쿼리는 온라인으로 주어진다. 자세한 내용은 입력 부분을 참고하면 된다.
입력
첫째 줄에 트리의 크기 이 주어진다. ()
다음 개의 줄에 두 정수 , 가 주어진다. 두 정점 , 를 잇는 간선이 존재함을 뜻한다. ()
다음 줄에 쿼리의 개수 가 주어진다. ()
다음 개의 줄에 두 정수 , 가 주어진다. (, )
를 직전 쿼리의 정답이라고 하자. 첫 쿼리라면 이다. 이때 와 는 다음과 같이 구한다.
출력
개의 줄에 걸쳐 각 쿼리의 정답을 출력한다.