동적 수열 자료 구조
시간 제한1초메모리 제한128 MB
구간 대입, 구간 등차수열 더하기, 중간 삽입, 구간 합 질의를 모두 효율적으로 처리하는 자료구조를 설계하는 문제입니다.
문제
정수 수열에 다음 네 가지 연산을 차례대로 수행한다. 위치는 현재 수열을 기준으로 1번부터 센다.
초기 수열과 수행할 연산들이 주어질 때, 4번 연산이 나올 때마다 그 결과를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 Q가 주어진다. N은 초기 수열의 크기이고, Q는 수행할 연산의 개수이다. (1 <= N, Q <= 100,000)
둘째 줄에는 초기 수열의 원소 N개가 공백으로 구분되어 주어진다. 각 원소는 100,000을 넘지 않는 음이 아닌 정수이다.
다음 Q개 줄에는 수행할 연산이 차례대로 주어진다. X가 있는 연산에서는 0 <= X <= 100이다. 구간 연산에서는 1 <= A <= B <= 현재 수열의 크기이고, 삽입 연산에서는 1 <= C <= 현재 수열의 크기+1이다.
출력
4번 연산이 주어질 때마다 해당 구간의 합을 한 줄에 하나씩 출력한다. 합은 32비트 정수 범위를 넘을 수 있다.