만드는 중입니다

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

구간과 쿼리 2

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

요약
구간을 순서대로 추가하고, 2번 질의마다 a번째 구간에서 b번째 구간으로 가는 경로가 있으면 1, 없으면 0을 출력합니다.
난이도

보통10점 중 7점

유형
유니온 파인드, 세그먼트 트리, 구간
정답자
아직 제출이 없습니다

문제

NN개의 쿼리가 주어졌을 때, 쿼리를 순서대로 수행해보자. 쿼리는 총 2가지 종류가 있고 아래와 같다. 가장 처음에 집합에는 아무것도 없다.

  • 1 x y (x < y): 새로운 구간 (x,y)(x, y)를 집합에 추가한다. 추가하는 구간의 크기는 이전에 추가된 모든 구간의 크기보다 크다.
  • 2 a b (a≠ba \neq b): aa번째 추가된 구간에서 bb번째 추가된 구간으로 이동하는 경로가 있으면 1, 없으면 0을 출력한다. 가장 처음 추가된 구간은 1번째 구간이다.

구간 (x1,y1)(x_1, y_1)에서 구간 (x2,y2)(x_2, y_2)로 이동하려면 x2<x1<y2x_2 < x_1 < y_2 또는 x2<y1<y2x_2 < y_1 < y_2를 만족해야 한다. 구간 I1I_1에서 I2I_2로 이동하는 경로가 있다는 것은 집합에 추가된 구간만을 이용해서 I1I_1에서 I2I_2로 이동할 수 있을 때이다.

입력

첫째 줄에 쿼리의 개수 NN(1≤N≤100,0001 \le N \le 100{,}000)이 주어진다. 둘째 줄부터 NN개의 줄에 쿼리가 한 줄에 하나씩 주어진다. 입력으로 주어지는 모든 값은 절댓값이 10910^9보다 작거나 같은 정수이다. 2번 쿼리는 적어도 2개의 구간이 집합에 추가된 이후에 주어진다.

출력

2번 쿼리가 주어질 때마다 결과를 출력한다.

예제1

  1. 예제 1

    입력
    5
    1 1 5
    1 5 11
    2 1 2
    1 2 9
    2 1 2
    
    예상 출력
    0
    1