고통받는 난쟁이들
시간 제한1초메모리 제한512 MB
순열에서 두 위치를 바꾸는 명령과, 높이 A부터 B까지의 난쟁이가 연속한 위치에 있는지 묻는 명령을 처리한다.
문제
일곱 언덕과 일곱 바다 너머의 작은 마을에, 하루 종일 놀고 먹고 잠만 자는 난쟁이 명이 살고 있어요. 이들의 게으름에 진저리가 난 백설공주는 체육 수업을 빙자한 얼차려를 주기로 했답니다!
수업이 시작되면 난쟁이들은 키가 큰 순서대로 한 줄로 서 있어야 해요. 신기하게도 난쟁이들의 키는 모두 서로 다르며, 정확히 cm입니다. 하지만 난쟁이들은 자기들끼리 키를 비교해 줄을 설 지능조차 없어서, 백설공주가 직접 아래 명령으로 이들을 조종합니다.
1 X Y— 번째 위치와 번째 위치에 서 있는 두 난쟁이가 자리를 맞바꿉니다.
또한 백설공주는 아래 명령으로 특정 키 구간의 난쟁이들이 제대로 뭉쳐 서 있는지 확인합니다.
2 A B— 키가 cm인 난쟁이들이 모두 서로 이웃하여(연속된 위치에) 서 있으면YES를, 그렇지 않으면NO를 출력합니다. 이때 이들이 반드시 순서대로 서 있을 필요는 없습니다.
멍청한 난쟁이들이 백설공주의 명령을 잘 따르도록 도와, 백설공주가 더는 화나지 않게 해 주세요!
입력
첫째 줄에 난쟁이의 수 과 백설공주가 내리는 명령의 수 이 주어집니다 (, ).
둘째 줄에는 난쟁이들이 처음 서 있는 순서를 나타내는 개의 자연수가 주어집니다. 이는 부터 까지의 각 키가 정확히 한 번씩 등장하는 순열이며, 번째 수는 번째 위치에 서 있는 난쟁이의 키(cm)입니다.
이어지는 개의 줄에는 백설공주의 명령이 한 줄에 하나씩 주어지며, 각 명령은 다음 두 형태 중 하나입니다.
1 X Y(, )2 A B()
출력
2 형태의 명령마다 그 결과를 YES 또는 NO로 한 줄에 하나씩 출력합니다.