만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

컬렉션

면접 대비

시간 제한5초메모리 제한1024 MB

요약
각 테스트 케이스에서 구간의 모든 동전 종류에 x개를 더하고, 구간의 동전을 모두 없애며, 질의마다 전체 동전의 가치를 출력합니다.
난이도

보통10점 중 6점

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

문제

동전을 모으고 있습니다. 가지고 있는 동전의 가치가 얼마인지 알고 싶습니다.

가끔 동전이 든 주머니를 주워서 컬렉션에 추가합니다. 종류별로 동전이 몇 개인지 정확히 알고 싶기 때문에, 같은 종류의 동전은 모두 함께 보관합니다. 여러 종류의 동전을 전부 잃어버릴 수도 있습니다.

이런 일들이 일어나더라도, 언제든지 가지고 있는 동전의 총 가치를 빠르게 구할 수 있어야 합니다.

입력

첫 번째 줄에 테스트 케이스의 개수 TT가 주어집니다. TT는 10 이하입니다.

다음 줄에는 양의 정수 NN과 QQ가 주어집니다. 1≤N≤2×1061 \le N \le 2 \times 10^6이고 1≤Q≤1041 \le Q \le 10^4입니다. 동전 종류 VV의 가치는 (V mod 10)+1(V \bmod 10) + 1입니다.

이후 QQ개의 줄에는 "1 a b x", "2 a b", "3" 중 하나의 형태가 주어집니다.

"1 a b x" 형태이면, aa부터 bb까지의 종류마다 동전을 xx개씩 얻습니다.

"2 a b" 형태이면, aa부터 bb까지의 종류에 속한 동전을 모두 잃습니다.

"3" 형태이면, 가지고 있는 모든 동전의 총 가치를 구합니다.

처음에는 동전이 없습니다. 1≤a≤b≤N1 \le a \le b \le N이고 1≤x≤101 \le x \le 10이라고 가정해도 됩니다.

출력

"3" 형태의 줄마다, 가지고 있는 모든 동전의 총 가치를 별도의 줄에 출력합니다.

예제1

  1. 예제 1

    입력
    1
    10 10
    1 2 5 10
    3
    2 3 5
    3
    1 5 8 10
    3
    1 7 9 2
    3
    2 5 9
    3
    
    예상 출력
    140
    20
    280
    328
    20