같은 묶음


문제 정보
check포인트 : 1 (부분 점수)
schedule시간 제한 : 2.0s
storage메모리 제한 : 128M
edit_square출제자:
 
답안 제출

번호가 0부터 n까지 붙어 있는 대상들이 있다. 처음에는 각 번호가 모두 따로 떨어져 있어, 하나의 번호가 하나의 묶음을 이룬다.

이후 여러 개의 지시가 차례대로 주어진다. 지시는 두 종류이다.

하나는 두 번호가 속한 묶음을 하나로 합치는 지시이다. 이때 두 번호가 이미 같은 묶음에 속해 있더라도, 지시는 그대로 처리된다.

다른 하나는 두 번호가 현재 같은 묶음 안에 들어 있는지를 묻는 지시이다.

주어진 지시들을 순서대로 처리하면서, 확인 지시가 들어올 때마다 두 번호가 같은 묶음에 속하는지 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 n, m이 주어진다. m은 입력으로 주어지는 지시의 개수이다.

다음 m개의 줄에는 각각 하나의 지시가 주어진다.

  • 0 a b: a가 속한 묶음과 b가 속한 묶음을 하나로 합친다.
  • 1 a b: a와 b가 같은 묶음에 속해 있는지 확인한다.

출력

1로 시작하는 지시에 대해, a와 b가 같은 묶음에 포함되어 있으면 YES를, 그렇지 않으면 NO를 출력한다.

각 결과는 한 줄에 하나씩 출력한다.

제한

  • 1 ≤ n ≤ 1,000,000
  • 1 ≤ m ≤ 100,000
  • 0 ≤ a, b ≤ n
  • a, b는 정수
  • a와 b는 같을 수도 있다.

예제 입력 1

7 8
0 1 3
1 1 7
0 7 6
1 7 1
0 3 7
0 4 2
0 1 1
1 1 1

예제 출력 1

NO
NO
YES

댓글

현재 작성된 댓글이 없습니다.