트리
시간 제한2초메모리 제한512 MB
두 정점이 연결되어 있는지 묻는 질의를 처리한 뒤 답에 따라 트리에서 간선 하나를 제거할 수 있어, 온라인 삭제 상황에서 연결성을 관리해야 한다.
문제
트리 는 정점과 에지로 이루어진다. 그림 1의 원이 정점이고, 정점과 정점을 잇는 선이 에지다. 가장 위에 놓인 정점을 루트라 하며, 루트는 하나뿐이다. 정점 개에는 1번부터 번까지 번호가 붙고 루트는 항상 1번이다.
두 정점 와 를 잇는 경로는 정점을 나열한 순서열 이다. 이웃한 와 은 에지로 연결되어 있고, , 이다. 트리에서는 임의의 두 정점 사이에 이런 경로가 정확히 하나 있다. 그림 1에서 정점 3과 정점 11을 잇는 유일한 경로는 이다.

그림 1
정점 에서 루트까지 가는 유일한 경로를 라 하자. 와 에지로 연결된 정점 가운데 위에 있는 정점을 의 부모 정점이라 한다. 그림 1에서 4, 7, 9의 부모 정점은 1이고, 2와 11의 부모 정점은 7이다. 루트에는 부모 정점이 없다.
에지를 하나 제거하면 그 에지의 양 끝점 말고 다른 정점 쌍 사이에서도 경로가 사라질 수 있다. 그림 1에서 7과 11 사이의 에지를 제거하면 8과 5를 잇는 경로가 없어진다.
트리 정보가 주어지고, 이어서 질의와 에지 제거가 임의의 순서로 섞여 주어진다. 주어진 순서대로 작업을 처리하면서 각 질의의 답을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 트리의 정점 개수 과 질의 개수 가 주어진다 ().
다음 개 줄 가운데 번째 줄에는 정점 의 부모 정점 번호 가 주어진다 (). 주어지는 부모 관계는 항상 1번 정점을 루트로 하는 트리를 이룬다.
다음 개 줄에는 각각 세 정수 , , 가 주어진다 (, 는 0 또는 1). 이면 와 를 잇는 경로가 있는지 묻는 질의만 처리한다. 이면 같은 질의를 먼저 처리한 뒤, 답이 YES이면 와 의 부모 정점을 잇는 에지를 제거하고, 답이 NO이면 와 의 부모 정점을 잇는 에지를 제거한다. 제거하려는 에지가 원래 없거나 이미 제거되었으면 아무 에지도 제거하지 않는다.
출력
질의 개의 답을 순서대로 개 줄에 출력한다. 경로가 있으면 YES를, 없으면 NO를 출력한다.