고통받는 난쟁이들

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

요약
순열에서 두 위치를 바꾸는 명령과, 높이 A부터 B까지의 난쟁이가 연속한 위치에 있는지 묻는 명령을 처리한다.
난이도

보통10점 중 7점

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

문제

일곱 언덕과 일곱 바다 너머의 작은 마을에, 하루 종일 놀고 먹고 잠만 자는 난쟁이 NN명이 살고 있어요. 이들의 게으름에 진저리가 난 백설공주는 체육 수업을 빙자한 얼차려를 주기로 했답니다!

수업이 시작되면 난쟁이들은 키가 큰 순서대로 한 줄로 서 있어야 해요. 신기하게도 난쟁이들의 키는 모두 서로 다르며, 정확히 1,2,…,N1, 2, \dots, Ncm입니다. 하지만 난쟁이들은 자기들끼리 키를 비교해 줄을 설 지능조차 없어서, 백설공주가 직접 아래 명령으로 이들을 조종합니다.

  • 1 X Y — XX번째 위치와 YY번째 위치에 서 있는 두 난쟁이가 자리를 맞바꿉니다.

또한 백설공주는 아래 명령으로 특정 키 구간의 난쟁이들이 제대로 뭉쳐 서 있는지 확인합니다.

  • 2 A B — 키가 A,A+1,…,BA, A+1, \dots, Bcm인 난쟁이들이 모두 서로 이웃하여(연속된 위치에) 서 있으면 YES를, 그렇지 않으면 NO를 출력합니다. 이때 이들이 반드시 A,A+1,…,BA, A+1, \dots, B 순서대로 서 있을 필요는 없습니다.

멍청한 난쟁이들이 백설공주의 명령을 잘 따르도록 도와, 백설공주가 더는 화나지 않게 해 주세요!

입력

첫째 줄에 난쟁이의 수 NN과 백설공주가 내리는 명령의 수 MM이 주어집니다 (2≤N≤200 0002 \le N \le 200\,000, 2≤M≤200 0002 \le M \le 200\,000).

둘째 줄에는 난쟁이들이 처음 서 있는 순서를 나타내는 NN개의 자연수가 주어집니다. 이는 11부터 NN까지의 각 키가 정확히 한 번씩 등장하는 순열이며, ii번째 수는 ii번째 위치에 서 있는 난쟁이의 키(cm)입니다.

이어지는 MM개의 줄에는 백설공주의 명령이 한 줄에 하나씩 주어지며, 각 명령은 다음 두 형태 중 하나입니다.

  • 1 X Y (1≤X,Y≤N1 \le X, Y \le N, X≠YX \ne Y)
  • 2 A B (1≤A≤B≤N1 \le A \le B \le N)

출력

2 형태의 명령마다 그 결과를 YES 또는 NO로 한 줄에 하나씩 출력합니다.

예제2

  1. 예제 1

    입력
    5 3
    2 4 1 3 5
    2 2 5
    1 3 1
    2 2 5
    
    예상 출력
    NO
    YES
    
  2. 예제 2

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