만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Gossips

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

요약
하위 그룹 관계로 이루어진 숲에서 새로 퍼지는 소문을 반영하며, 한 그룹이 다른 그룹에 대한 소문을 아는지 질의에 답합니다.
난이도

보통10점 중 7점

유형
트리, 세그먼트 트리, 구현
정답자
아직 제출이 없습니다

문제

Poli는 대학교 1학년이다. 명문 대학에 입학했지만, 동기들이 N개의 친목 그룹으로 나뉘어 있다는 것을 곧 알게 된다. 이 그룹들의 주된 목적은 소문을 퍼뜨리는 것이다.

Poli는 각 그룹 i가 하나 이상의 하위 그룹으로 이루어져 있고, 각 하위 그룹은 한 그룹에만 속할 수 있다는 것을 알고 있다. 그룹 i가 그룹 j에 대한 소문을 알게 되면, i의 모든 하위 그룹(그 하위 그룹의 하위 그룹까지 포함한다)과 i가 속한 모든 그룹이 그룹 j에 대한 소문을 알게 된다. 이 그룹들은 j가 속한 모든 그룹에 대한 소문도 함께 알게 된다. 다만 j의 하위 그룹에 대해서는 아무것도 알지 못한다. 그 구성원들은 소문에 연루되지 않았을 수 있기 때문이다.

Poli는 동기 모두와 친구이므로 소문이 생길 때(즉, 그룹 i가 그룹 j에 대한 소문을 알게 될 때)를 모두 안다. 그녀는 그룹 i가 그룹 j에 대한 소문을 알고 있는지와 같은 질문에 빠르게 답하고 싶어 한다.

안타깝게도 Poli의 대학은 꽤 크기 때문에, 여러분의 도움이 필요하다!

입력

첫 줄에는 세 정수 N(그룹 수), M(그룹 간 관계 수), Q(질의 수)가 주어진다. 다음 M개의 줄에는 a b가 주어지며, 이는 그룹 b가 그룹 a의 하위 그룹이라는 뜻이다. 다음 Q개의 줄에는 세 정수 s, x, y가 주어진다. s가 1이면 그룹 x와 그룹 y 사이에 소문이 하나 이상 있으면 YES, 없으면 NO로 답한다. s가 2이면 그룹 x가 그룹 y에 대한 소문을 방금 알게 되었다는 뜻이다.

출력

s가 1인 질의마다 한 줄씩 YES 또는 NO를 출력한다.

제한

1≤N,Q≤100,0001 \le N, Q \le 100{,}000

1≤M<N1 \le M < N

1≤x,y≤N1 \le x, y \le N

그룹 i가 그룹 j에 대한 소문을 알고 있다고 해서 그룹 j가 그룹 i에 대한 소문을 안다는 뜻은 아니다.

예제1

  1. 예제 1

    입력
    9 7 7
    6 1
    6 2
    7 6
    7 3
    8 4
    8 5
    9 7
    2 6 4
    2 8 6
    1 2 4
    1 2 5
    1 4 7
    1 8 1
    1 5 9
    
    예상 출력
    YES
    NO
    YES
    NO
    YES