방출 스펙트럼

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

요약
인접한 두 원소를 교환하는 갱신과 구간에서 K번째로 작은 값을 묻는 질의를 온라인으로 처리한다.
난이도

어려움10점 중 8점

유형
이분 탐색, 분할 정복, 세그먼트 트리, 정렬
정답자
아직 제출이 없습니다

문제

행성과 별자리 성간 협의회(ICPC)의 과학자들은 천체가 내는 방출 스펙트럼을 분석해 천체의 구성 성분을 연구한다. 천체의 방출 스펙트럼은 원자 에너지 전이로 방출된 전자기파의 진동수 분포와 그 복사의 세기를 함께 나타낸 것이다. 다시 말해 천체가 내는 빛에서 각 색의 세기가 얼마인지를 기록한다.

양자역학의 가정에 따르면 천체의 방출 스펙트럼은 항상 불연속이다. 그래서 ICPC는 스펙트럼을 정수 수열로 저장한다. 수열의 각 자리는 특정 파장의 세기이고, 수가 클수록 방출 세기가 크다. 수열에서 이웃한 자리는 스펙트럼에서 이웃한 파장에 대응한다.

방출 스펙트럼은 아주 복잡한 물리 과정의 결과라서 천체의 수명 동안 변한다. 특히 아직 완전히 밝혀지지 않은 원자 반응 때문에 어느 순간 이웃한 두 파장의 세기가 서로 뒤바뀔 수 있다.

과학자들은 한 천체의 스펙트럼을 특정 파장 구간에서 아주 자세히 관측하고 있다. 파장 구간과 정수 KK가 주어질 때, 그 구간에서 KK번째로 작은 세기가 얼마인지 알고 싶어 한다. 과학자들의 질문과 스펙트럼에서 일어난 세기 교환이 뒤섞인 관측 기록이 주어진다. 모든 질문에 답하라.

입력

첫째 줄에 측정한 파장의 개수 NN과 사건의 개수 QQ가 주어진다 (1≤N,Q≤1051 \le N, Q \le 10^5). 둘째 줄에 NN개의 정수 I1,I2,…,INI_1, I_2, \dots, I_N이 주어진다. IiI_i는 ii번째 파장의 처음 세기이다 (0≤Ii≤1090 \le I_i \le 10^9).

다음 QQ개의 줄은 각각 사건 하나를 나타내고, 사건의 종류를 뜻하는 문자로 시작한다. 과학자의 질문은 문자 Q로 시작하고, 원자 반응에 의한 세기 교환은 문자 S로 시작한다.

질문 줄은 문자 뒤에 세 정수 AA, BB, KK가 온다. AA번 자리부터 BB번 자리까지의 파장 중에서 KK번째로 작은 세기를 묻는다 (1≤A≤B≤N1 \le A \le B \le N, 1≤K≤B−A+11 \le K \le B - A + 1).

교환 줄은 문자 뒤에 정수 WW가 하나 온다. WW번 자리와 W+1W + 1번 자리의 세기를 서로 바꾼다 (1≤W≤N−11 \le W \le N - 1).

출력

질문마다 한 줄에 정수 하나를 출력한다. AA번 자리부터 BB번 자리까지의 파장 중에서 KK번째로 작은 세기이다. 질문은 입력에 나온 순서대로 답한다.

예제2

  1. 예제 1

    입력
    10 4
    1 2 6 7 5 8 9 3 0 4
    Q 1 10 7
    Q 2 5 2
    S 5
    Q 2 5 2
    
    예상 출력
    6
    5
    6
    
  2. 예제 2

    입력
    4 3
    33333333 22222222 44444444 11111111
    Q 3 3 1
    S 1
    Q 2 4 2
    
    예상 출력
    44444444
    33333333