마르스 사과 과수원
시간 제한2초메모리 제한1024 MB
나무 N그루에 달린 사과의 익음 정도를 관리합니다. 특정 익음 정도 X인 사과를 모두 X+1로 바꾸고, 구간 안에서 익음 정도가 Y 이하인 나무 수를 셉니다.
문제
Zaqquat는 마르스에서 사과 과수원을 관리한다. 과수원에는 그루의 사과나무가 있다. 나무들은 한 줄로 길게 늘어서 있으며 으로 번호가 매겨져 있다.
마르스 사과는 다음 규칙에 따라 익는다.
- 해가 시작될 때 나무 의 사과 익음 정도는 이다.
- 해가 도는 동안 어느 시점에 익음 정도가 인 사과는 모두 한 단계씩 익어 익음 정도가 이 된다.
Zaqquat는 가끔 번부터 번까지 나무 중에서 사과 익음 정도가 이하인 나무가 몇 그루인지 알고 싶어 한다.
사과가 익는 과정을 모델링하고 Zaqquat의 질문에 답하는 프로그램을 작성하라.
입력
첫 줄에 나무 수 ()과 사건 수 ()가 주어진다.
둘째 줄에는 해가 시작될 때 각 나무 사과의 익음 정도 ()가 공백으로 구분되어 개 주어진다.
이후 개의 줄에 사건이 시간 순서대로 주어진다. 각 줄의 첫 값은 사건 종류 이다.
- 이면 정수 ()가 추가로 주어진다. 익음 정도가 인 사과가 모두 이 된다는 뜻이다.
- 이면 정수 , , (, )가 추가로 주어진다. 번부터 번까지(양 끝 포함) 나무 중에서 사과 익음 정도가 최대 인 나무가 몇 그루인지 묻는다는 뜻이다.
출력
종류가 2인 사건마다 질문에 대한 답을 한 줄에 하나씩, 질문이 주어진 순서대로 출력한다.