만남의 장소

면접 대비

시간 제한1초메모리 제한128 MB

요약
루트가 있는 트리와 M개의 질의가 주어질 때, 각 질의에서 두 노드의 가장 가까운 공통 조상을 구한다.
난이도

보통10점 중 4점

유형
트리, DFS, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

베시와 조넬은 아주 친한 친구입니다. 농부 존이 매일 소들이 풀을 뜯는 위치를 바꾸기 때문에, 둘은 종종 멀리 떨어져 이야기를 나누지 못합니다.

농장의 목초지와 길은 트리(tree) 구조를 이룹니다. 임의의 두 목초지 사이에는 정확히 하나의 경로만 존재하며, 11번 목초지(루트)를 제외한 모든 목초지에는 정확히 하나의 부모 목초지가 있습니다.

두 친구는 수다를 떨고 싶을 때마다, 베시의 목초지와 조넬의 목초지 모두의 조상이 되는 가장 가까운 목초지에서 만나기로 했습니다. 한 목초지는 자기 자신의 조상으로도 간주하므로, 한 명이 이미 다른 한 명의 조상 위치에 있다면 바로 그 목초지에서 만납니다.

농장에는 11번부터 NN번까지 번호가 매겨진 NN개의 목초지가 있습니다(1≤N≤10001 \le N \le 1000). 11번 목초지를 제외한 각 목초지 ii에 대해 그 부모 PiP_i가 주어집니다(1≤Pi≤N1 \le P_i \le N). 앞으로의 MM일 동안(1≤M≤10001 \le M \le 1000), kk번째 날에 베시는 BkB_k번, 조넬은 JkJ_k번 목초지에 있습니다(1≤Bk,Jk≤N1 \le B_k, J_k \le N). 각 날짜에 대해 두 사람의 만남의 장소를 구하세요.

예를 들어 11번 목초지가 루트인 다음과 같은 농장을 생각해 봅시다.

         [1]
       /  |  \
     [2] [3] [6]
     /        |  \
   [4]      [8]  [9]
           /  \
         [5]  [7]

이 농장에서 77번과 55번의 만남의 장소는 (가장 가까운 공통 조상인) 88번이고, 22번과 77번의 만남의 장소는 11번입니다.

입력

  • 첫째 줄: 두 정수 NN과 MM이 공백으로 구분되어 주어집니다.
  • 둘째 줄부터 NN번째 줄까지: ii번째 줄에는 목초지 ii의 부모 PiP_i가 하나의 정수로 주어집니다.
  • N+1N+1번째 줄부터 N+MN+M번째 줄까지: N+kN+k번째 줄에는 kk번째 날 베시와 조넬의 목초지 번호 BkB_k와 JkJ_k가 공백으로 구분되어 주어집니다.

출력

  • 11번째 줄부터 MM번째 줄까지: kk번째 줄에 kk번째 날 베시와 조넬의 만남의 장소를 하나의 정수로 출력합니다.

예제3

  1. 예제 1

    입력
    9 6
    1
    1
    2
    8
    1
    8
    6
    6
    2 7
    4 2
    3 3
    4 1
    7 5
    9 5
    
    예상 출력
    1
    2
    3
    1
    8
    6
    
  2. 예제 2

    입력
    1 1
    1 1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    2 4
    1
    1 2
    2 2
    1 1
    2 1
    
    예상 출력
    1
    2
    1
    1