동적 연결성과 쿼리

간선이 있으면 지우고 없으면 추가하는 토글 연산과 두 정점의 연결 여부 질의를 처리한다. x, y와 연결 요소 개수가 xor로 가려져 있어, 질의를 거꾸로 처리하며 동적 연결 구조를 유지해야 한다.

어려움9유니온 파인드그래프분할 정복구현아직 제출이 없습니다시간 제한3초메모리 제한1024 MB

문제

N개의 정점으로 이루어진 그래프가 있을 때 다음 쿼리를 해결하는 프로그램을 작성하시오.

  1. x y : x와 y 사이에 간선이 존재하면 제거하고, 존재하지 않으면 추가하는 쿼리이다. (0 ≤ x < y < N)
  2. x y : x와 y가 같은 연결 요소에 속하는지 여부를 구하여 출력하는 쿼리이다.  (0 ≤ y < x < N)

입력

첫째 줄에 정점의 갯수 N과 쿼리의 갯수 Q가 공백으로 구분하여 주어진다. ( 2 ≤ N, Q ≤ 105)

둘째 줄부터 Q개의 줄에 걸쳐 쿼리에 해당하는 두 정수 a b가 주어진다. (0 ≤ a, b < 263​​​​, a ≠ b)

x = (a xor F) mod N, y = (b xor F) mod N이며 F는 최초 0이고, 각 쿼리를 실행한 직후의 연결 요소의 갯수가 더해진다.

출력

2번 쿼리의 결과를 각 줄에 출력하시오. 두 정점이 같은 연결 요소에 속할 경우 1을, 아니면 0을 출력한다.