题目描述
这一次,你的线段树要完成以下操作:
1. 区间取反,也就是对区间 $[l,r]$ 中的所有位置 $i$,令 $a_i \rightarrow -a_i$
2. 区间求和,也就是对区间 $[l,r]$ 中的所有位置 $i$,求出 $\sum\limits_{i=l}^r a_i$
输入格式
第一行输入两个正整数 $n$ 和 $m$ 表示数组长度和操作次数,接下来一行有 $n$ 个整数 $a_1, a_2, \dots, a_n$,表示初始数组。
接下来 $m$ 行, 有两种可能操作:
- $1$ $l$ $r$ -- 表示对于区间 $[l,r]$ 中的所有位置 $i$,令 $a_i \rightarrow -a_i$
- $2$ $l$ $r$ -- 询问区间 $[l,r]$ 的和 $\sum\limits_{i=l}^r a_i$
- $1 \le n \le 100000$
- $1 \le m \le 100000$
- $-10^8 \le a_i \le 10^8$
- $1 \le l \le r \le n$