아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

나무는 쿼리를 싫어해~

시간 제한1초메모리 제한512 MB

요약
최대 10억 크기의 희소 배열에서 구간 덧셈을 수행하고, 처음 k개의 갱신이 적용된 시점에서 구간 합을 구한다.
난이도

어려움10점 중 8점

유형
세그먼트 트리, 누적 합, 정렬, 이분 탐색
정답자
아직 제출이 없습니다

문제

세그먼트 나무, 머지소트 나무, PST, 스플레이 나무, 최소 신장 나무, r-b 나무 등등 나무는 수많은 문제에 사용되어 왔다.

특히 쿼리 문제들은 나무를 너무 많이 사용하였다.

알고리즘 뉴비인 호민이는 쿼리 문제에서 수열의 범위를 늘리면 나무를 사용할 수 없을 거라 생각하고 수열의 범위를 10억으로 늘려버렸다!

문제를 풀어서 호민이를 혼내주자.

길이가 N인 수열 A1, A2, ..., AN 이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오.

  • 1 i j k: Ai, Ai+1, ..., Aj에 k를 더한다.
  • 2 i j k: k번째 1번 쿼리까지 적용되었을 때, Ai, Ai+1, ..., Aj의 합을 출력한다.

입력

첫째 줄에 쿼리의 개수 N(2 ≤ N ≤ 50,000)이 주어진다.

둘째 줄부터 N개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. 1번 쿼리의 경우 1 ≤ i ≤ j ≤ 1,000,000,000, -100,000 ≤ k ≤ 100,000 2번 쿼리의 경우 1 ≤ i ≤ j ≤ 1,000,000,000, 1 ≤ k ≤ 1번 쿼리의 개수 이다.

수열의 모든 항들의 초기값은 0이다.

1번 쿼리와 2번 쿼리는 각각 1개 이상 주어진다.

출력

2번 쿼리가 주어질 때마다 합을 출력한다.

예제1

  1. 예제 1

    입력
    6
    1 1 10 1000
    2 1 6 2
    1 2 9 -40
    2 6 10 3
    2 3 11 1
    1 4 11 400
    
    예상 출력
    5800
    6840
    8000