문제
1차원 배열에 N개의 수들이 담겨있다.
이 배열에 대하여 다음 두 가지 명령을 실행하는 프로그램을 작성하시오.
명령 1 : "1 f r x" 형태. 배열의 f 번째 칸부터 r 번째 칸에 각각 x 라는 수를 더한다. ( 1 ≤ f ≤ r ≤ N , -1,000,000 ≤ x ≤ 1,000,000 )
명령 2 : "2 f r" 형태. 배열의 f 번째 칸부터 r 번째 칸 수들의 합을 구하여 출력한다. ( 1 ≤ f ≤ r ≤ N )
입력
첫 줄에 배열의 크기 N 이 입력된다. ( 1 ≤ N ≤ 1,000,000 )
두 번째 줄에 초기 배열의 N 개의 수들이 입력된다. ( -1,000,000 ≤ 각 칸에 담긴 숫자 ≤ 1,000,000 )
세 번째 줄에 명령의 개수 Q 가 입력된다. ( 1 ≤ Q ≤ 10,000 )
네 번째 줄부터 Q 개의 줄에 걸쳐 처리할 명령이 입력된다.
출력
명령 2를 처리할 때마다 그 결과를 출력한다.
예제1
입력
10
-5 3 6 -10 2 4 3 -1 10 -5
8
1 1 5 -10
2 1 3
1 3 4 -6
2 3 3
1 5 10 7
1 9 9 -2
2 3 9
2 4 8
출력
-26
-10
5
0
예제2
입력
15
-35 10 23 -87 18 -5 29 -21 -2 67 -33 18 19 23 -9
14
1 2 12 367
1 3 9 -34
1 9 15 30
2 1 11
1 3 3 -34
2 1 15
1 2 7 -98
2 3 6
1 1 5 -30
2 2 2
1 6 7 1037
2 6 9
2 4 4
2 4 7
출력
3486
3990
855
249
3241
118
2909
태그
출처
@againalgo