53번 - 수열과 쿼리

시간 제한1
메모리 제한256 MB
제출7
정답2
맞힌 사람2
정답 비율28.57%

문제

길이 $N$인 수열 $A$가 주어진다. 이 수열에 대해, $M$개의 쿼리를 처리하는 프로그램을 작성하자. 쿼리는 다음 세 가지 중 하나이다. - `1 x y` : 수열의 $x$번째 원소부터 $y$번째 원소까지의 순서를 뒤집는다. - `2 x a` : 수열의 $x$번째 원소의 값을 $a$로 바꾼다. - `3 x y` : 수열의 $x$번째 원소부터 $y$번째 원소까지의 합을 출력한다. 모든 인덱스는 1번부터 시작한다.

입력

첫 번째 줄에 수열의 길이 $N$과, 쿼리의 개수 $M$이 주어진다. ($ 1 \le N, M \le 200,000$) 두 번째 줄에 수열 $A_1, A_2, \dots, A_N$이 공백으로 구분되어 주어진다. ($|A_i| \le 10 ^ 9$) 이후 $M$개의 줄에 각 쿼리가 하나씩 주어진다. 각 쿼리는 위의 세 형식 중 하나로 주어진다. ($1 \le x \le y \le N$, $|a| \le 10^9$ )

출력

3번 쿼리에 대해, 해당 구간의 합을 한 줄에 하나씩 출력한다.

예제 1

예제 입력 1

5 5
1 2 3 4 5
1 2 3
3 1 2
2 2 9
1 1 5
3 2 5

예제 출력 1

4
16

문제 정보

출처-
출제자wookji
검수자-