만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

품바의 물 저장고

시간 제한4초메모리 제한1024 MB

요약
Pumba가 k일 동안 구간의 물통에 물을 붓고, 구간 안 물의 총량을 묻는 질문에 답합니다. 물통 하나의 용량은 m리터입니다.
난이도

보통10점 중 6점

유형
분할 정복, 배열, 구현
정답자
아직 제출이 없습니다

문제

품바는 매우 알뜰하다. 가뭄이 올지도 모른다고 생각해서 물을 비축하기로 했다. 품바에게는 번호가 매겨진 나무 대야 nn개가 있다. 각 대야의 용량은 mm리터이다. 품바는 kk일 동안 물을 비축한다. 매일 품바는 다음 중 정확히 한 가지 행동만 한다.

  • 번호가 lil_i부터 rir_i까지인 대야에 물을 cic_i리터씩 붓는다(양 끝 포함). 대야에 cic_i리터가 다 들어가지 않으면 품바는 그 대야를 가득 채운다.
  • 번호가 lil_i부터 rir_i까지인 대야에 든 물의 총량을 티몬에게 묻는다(양 끝 포함).

티몬은 매우 게을러서, 품바의 질문에 답하는 일을 당신에게 맡겼다. 비축을 시작하기 전에 ii번째 대야에는 이미 aia_i리터의 물이 들어 있다.

입력

첫째 줄에 정수 nn, mm, kk가 주어진다. nn은 대야의 개수, mm은 대야 하나의 용량, kk는 품바가 물을 비축하는 날수이다 (1≤n≤2000001 \le n \le 200000, 1≤m≤1091 \le m \le 10^9, 1≤k≤2000001 \le k \le 200000).

둘째 줄에는 비축하기 전 각 대야의 물의 양 aia_i가 nn개 주어진다 (0≤ai≤m0 \le a_i \le m).

이어지는 kk개의 줄은 날마다 품바의 행동을 나타낸다. 물을 붓는 날이면 줄의 첫 수는 1이고, 이어서 정수 lil_i, rir_i, cic_i가 주어진다 (1≤li≤ri≤n1 \le l_i \le r_i \le n, 1≤ci≤1091 \le c_i \le 10^9). 물의 총량을 묻는 날이면 줄의 첫 수는 2이고, 이어서 정수 lil_i, rir_i가 주어진다 (1≤li≤ri≤n1 \le l_i \le r_i \le n).

출력

품바의 질문마다 답을 한 줄에 하나씩, 질문이 주어진 순서대로 출력한다.

예제1

  1. 예제 1

    입력
    3 3 7
    1 2 1
    1 1 2 1
    2 1 3
    1 2 3 1
    2 1 3
    2 1 1
    2 2 2
    2 3 3
    
    예상 출력
    6
    7
    2
    3
    2