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 |
| 검수자 | - |