아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

그래프와 쿼리

시간 제한2초메모리 제한512 MB

요약
무방향 그래프에서 간선을 추가하거나 삭제하면서 두 정점 사이의 연결 여부를 묻는 질의에 답한다.
난이도

어려움10점 중 8점

유형
그래프, 유니온 파인드, 분할 정복, DFS
정답자
아직 제출이 없습니다

문제

N개의 정점으로 이루어진 그래프 G가 있다. 처음에 G에는 간선이 없다. 다음 쿼리를 수행한다.

  • 1 A B: 정점 A와 B를 연결하는 간선을 추가한다. 쿼리가 주어지기 전에 A와 B 사이에는 간선이 없다.
  • 2 A B: 정점 A와 B를 연결하는 간선을 제거한다. 쿼리가 주어지기 전에 A와 B 사이에는 간선이 있다.
  • 3 A B: 정점 A에서 B로 가는 경로가 있는지 조사한다. 경로가 있으면 1, 없으면 0을 출력한다.

모든 A와 B는 1 ≤ A, B ≤ N, A ≠ B를 만족하고, 모든 간선은 방향이 없다.

입력

첫째 줄에 정점의 개수 N(2 ≤ N ≤ 100,000)과 쿼리의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 쿼리가 한 줄에 하나씩 주어진다.

출력

3번 쿼리의 결과를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    4 11
    1 1 2
    1 2 3
    1 3 4
    1 1 4
    3 4 2
    2 1 2
    3 2 4
    2 3 4
    3 4 2
    1 2 4
    3 4 2
    
    예상 출력
    1
    1
    0
    1