건초 더미 세기
시간 제한2초메모리 제한512 MB
N개 밭의 구간에 값을 더하고 구간 최솟값과 구간 합을 묻는 Q개 연산을 처리합니다.
- 난이도
보통10점 중 4점
- 유형
- 세그먼트 트리
- 정답자
- 아직 제출이 없습니다
문제
농부 존은 농장을 정리할 인부를 구하려 했지만, 존이 쓴 복잡한 작업 지시서를 본 사람은 모두 그만두었다. 결국 혼자 일을 마치게 된 존은 지시서를 필요 이상으로 복잡하게 썼다고 인정했다. 존이 지시서대로 농장 정비를 끝내도록 도와주자.
농장은 한 줄로 늘어선 밭 개로 이루어지고, 각 밭에는 번부터 번까지 번호가 붙어 있다. 한 밭에는 건초 더미를 몇 개든 놓을 수 있다. 지시서의 항목은 세 종류다.
- 연속한 구간에 속한 모든 밭에 같은 개수의 건초 더미를 새로 놓는다.
- 연속한 구간에 속한 밭 중에서 건초 더미가 가장 적은 밭의 건초 더미 개수를 구한다.
- 연속한 구간에 속한 밭에 있는 건초 더미의 총 개수를 구한다.
입력
첫째 줄에 양의 정수 ()과 ()가 주어진다.
둘째 줄에 각 밭에 처음 놓여 있는 건초 더미의 개수를 나타내는 음이 아닌 정수 개가 주어진다. 각 값은 이하다.
다음 개의 줄에는 각각 대문자 M, P, S 중 한 글자가 주어지고, 그 뒤에 양의 정수 , ()가 오거나 양의 정수 , , (, )가 온다. 정수가 세 개인 경우는 대문자가 P인 경우뿐이고, 그 반대도 성립한다.
M은 번 밭부터 번 밭까지에서 건초 더미가 가장 적은 밭의 건초 더미 개수를 묻는다.
P는 번 밭부터 번 밭까지의 모든 밭에 건초 더미를 개씩 더 놓는다.
S는 번 밭부터 번 밭까지에 있는 건초 더미의 총 개수를 묻는다.
출력
지시서의 M 항목과 S 항목마다 답을 한 줄씩, 입력에 주어진 순서대로 출력한다.