#P1001. Range Assign, Range Add and Range Sum

Range Assign, Range Add and Range Sum

P1001:区间赋值、区间加、区间求和

题目描述

给定一个长度为 NN 的数组,初始时所有元素均为 00。 执行 QQ 次操作,操作分为三类:

  1. 将区间 [l,r][l,r] 内的所有元素赋值xx
  2. 给区间 [l,r][l,r] 内的所有元素 dd
  3. 查询区间 [l,r][l,r] 内所有元素的

输入输出格式

输入

第一行输入两个整数 NNQQ。 接下来 QQ 行,每行表示一个操作,格式如下:

  • 1 l r x1\ l\ r\ x (对应赋值操作)
  • 2 l r d2\ l\ r\ d (对应加法操作)
  • 3 l r3\ l\ r (对应求和查询)

输出

对于每一次求和查询操作,输出一个整数作为结果。

样例

5 7
3 1 5
1 2 4 3
3 1 5
2 3 5 2
3 4 5
1 1 3 -1
3 1 3
0
9
7
-3

数据范围

1N,Q2×1051 \le N,Q \le 2\times 10^5