#17 Master
리포트

문제 설명

N개의 수로 이루어진 수열이 있다. 이 수열에 대해 다음 두 가지 연산을 수행하는 프로그램을 작성하시오.

연산 1: 구간 [l, r]의 모든 수에 v를 더한다.

연산 2: 구간 [l, r]의 합을 출력한다.

느리게 갱신되는 세그먼트 트리(Lazy Propagation)를 활용해야 시간 내에 해결할 수 있다.

입력 형식

첫째 줄에 수의 개수 N과 연산의 수 Q가 주어진다. (1 ≤ N, Q ≤ 100,000)

둘째 줄에 N개의 수가 공백으로 구분되어 주어진다.

다음 Q개의 줄에 연산이 주어진다.

1 l r v: A[l]부터 A[r]까지 모든 수에 v를 더한다.

2 l r: A[l]부터 A[r]까지의 합을 출력한다.

출력 형식

2 연산에 대해 결과를 한 줄에 하나씩 출력한다.

예제 1

입력
5 4
1 2 3 4 5
1 1 3 2
2 1 5
1 3 5 1
2 2 4
출력
21
15

문제 정보

시간 제한 2000ms
메모리 제한 256MB
제출 수 0
정답률 0.0%
Ctrl + to submit