최소 공통 조상과 쿼리
시간 제한5초메모리 제한1536 MB
루트가 1인 트리에서 각 질의의 K개 정점을 받아 모든 쌍의 LCA 레벨을 더한 값을 구합니다.
문제
개의 정점으로 이루어진 트리 가 주어졌을 때, 다음 쿼리를 수행하는 프로그램을 작성하시오.
- : 인 모든 쌍에 대해 번 정점과 번 정점의 LCA의 레벨의 합을 출력한다.
의 루트 정점은 1번 정점이다. 루트 정점의 레벨은 0이며, 다른 정점의 레벨은 (부모 정점의 레벨) + 1로 정의한다.
두 정점 의 LCA는 의 공통 조상 중 가장 가까운 정점(최소 공통 조상)을 의미한다.
입력
첫째 줄에 정점의 개수 과 쿼리의 개수 가 주어진다.
둘째 줄에는 번 정점의 부모 정점 이 주어진다.
다음 개의 줄에는 쿼리 가 공백으로 구분되어 주어진다.
출력
각각의 쿼리마다 한 줄에 하나씩 결과를 출력한다.
제한
- 에 대해
- 모든 쿼리에서 의 합은 이하
- 이면