Problem6902--区区区间

6902: 区区区间

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

Keven 特别喜欢线段树,他给你一个长度为 $n$ 的序列,对序列进行 $m$ 次操作。
操作有两种:
$1\ l\ r\ k$:表示将下标在 $[l , r]$ 区间内的数字替换成 $[k,k+1,…,k+r-l]$
$2\ l\ r$:表示查询区间 $[l , r]$ 的区间和

Input

第一行两个整数 $n,m\ (1 \leq n,m \leq 2 \times 10^5)$,表示序列的长度和操作次数
第二行 $n$ 个整数,表示序列的初始值 $a_1,a_2,…a_n\ (1 \leq a_i \leq 2\times 10^5)$
接下来 $m$ 行,每行三或四个数字,若第一个数字是 $1$,则表示操作 $1$,反之则表示操作 $2$。
$(1 \leq l \leq r \leq n,\ 1 \leq k \leq 2 \times 10^5)$

Output

对于每个操作 $2$,输出一行一个整数表示区间和。

Sample 1 Input

5 5
1 1 1 1 1
2 1 5
1 1 5 1
2 1 5
1 1 3 3
2 1 3

Sample 1 Output

5
15
12
第一次 $1$ 操作后,序列是 1 2 3 4 5
第二次 $1$ 操作后,序列是 3 4 5 4 5

HINT

题目来源:牛客网

Source/Category

数据结构 2.9.线段树