6902: 区区区间
[Creator : ]
Description
Keven 特别喜欢线段树,他给你一个长度为 $n$ 的序列,对序列进行 $m$ 次操作。
操作有两种:
$1\ l\ r\ k$:表示将下标在 $[l , r]$ 区间内的数字替换成 $[k,k+1,…,k+r-l]$
$2\ l\ r$:表示查询区间 $[l , r]$ 的区间和
操作有两种:
$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)$
第二行 $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
第二次 $1$ 操作后,序列是 3 4 5 4 5