#242
Unrated
책꽂이 정리
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

민준이는 동아리방의 책꽂이를 정리하려고 한다. 동아리방에는 11번부터 NN번까지 번호가 매겨진 NN개의 칸이 있는 책꽂이가 나란히 놓여 있다. 각 칸에는 여러 권의 책이 꽂혀 있을 수 있다.

민준이는 효율적인 정리를 위해 다음 세 종류의 작업을 수행하려 한다.

  1. 구간 [A,B][A, B]가 주어지면, AA번 칸부터 BB번 칸까지의 모든 칸에 책을 CC권씩 더 넣는다.
  2. 구간 [A,B][A, B]가 주어지면, 해당 구간의 칸들에 꽂힌 책의 개수 중 최솟값을 구한다.
  3. 구간 [A,B][A, B]가 주어지면, 해당 구간의 모든 칸에 꽂힌 책의 총 개수를 구한다.

민준이를 도와 책꽂이의 상태를 관리하고 각 쿼리에 대한 결과를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 책꽂이의 칸 수 NN과 작업의 개수 QQ가 공백으로 구분되어 주어진다. (1N2000001 \le N \le 200\,000; 1Q1000001 \le Q \le 100\,000)

둘째 줄에 NN개의 음이 아닌 정수가 공백으로 구분되어 주어진다. 이는 각 칸에 처음에 꽂혀 있는 책의 개수를 나타내며, 각 값은 100000100\,000 이하이다.

다음 QQ개의 줄에는 각 작업의 정보가 한 줄에 하나씩 주어진다. 각 줄은 대문자 M, P, S 중 하나로 시작한다.

  • 문자가 M인 경우, 뒤이어 두 정수 AABB가 공백으로 구분되어 주어진다. (1ABN1 \le A \le B \le N) 이는 구간 [A,B][A, B]의 최솟값을 구하라는 의미이다.
  • 문자가 P인 경우, 뒤이어 세 정수 AA, BB, CC가 공백으로 구분되어 주어진다. (1ABN1 \le A \le B \le N; 1C1000001 \le C \le 100\,000) 이는 구간 [A,B][A, B]의 모든 칸에 책 CC권을 더하라는 의미이다.
  • 문자가 S인 경우, 뒤이어 두 정수 AABB가 공백으로 구분되어 주어진다. (1ABN1 \le A \le B \le N) 이는 구간 [A,B][A, B]의 합을 구하라는 의미이다.

출력

M 또는 S 작업이 주어질 때마다 해당 작업의 결과를 한 줄에 하나씩 출력한다.

예제 입력 1

4 5
3 1 2 4
M 3 4
S 1 3
P 2 3 1
M 3 4
S 1 3

예제 출력 1

2
6
3
8
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Unrated0명 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.