구간 연산

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

정수 nn개로 이루어진 수열 a1,a2,,ana_1, a_2, \dots, a_n이 주어진다. 각 원소는 [0,k1][0, k-1] 범위의 정수이다. 이 수열에 대해 다음 두 종류의 연산을 모두 합쳐 mm번 수행한다.

  1. 구간 합 ac+ac+1++ada_c + a_{c+1} + \dots + a_d 를 출력한다.
  2. cidc \le i \le d 를 만족하는 모든 aia_i(ai+l)modk(a_i + l) \bmod k 로 바꾼다.

입력

첫째 줄에 세 정수 nn, kk, mm 이 주어진다 (1n1000001 \le n \le 100000, 1k101 \le k \le 10, 1m1000001 \le m \le 100000). 둘째 줄에는 수열을 나타내는 nn개의 정수 a1,a2,,ana_1, a_2, \dots, a_n 이 주어진다 (0aik10 \le a_i \le k-1).

이어지는 mm개의 줄은 각각 하나의 연산을 나타낸다. 각 줄은 연산의 종류를 나타내는 정수 zz 로 시작한다. z=1z = 1 이면 구간 합 질의이며, 뒤에 두 정수 cc, dd 가 이어진다. z=2z = 2 이면 구간 변경 연산이며, 뒤에 세 정수 cc, dd, ll 이 이어진다 (1cdn1 \le c \le d \le n, 0lk10 \le l \le k-1).

출력

각 구간 합 연산마다 계산한 결과를 한 줄에 하나씩 출력한다.