#P9135. 区间翻转区间求和(Range Reverse Range Sum)

区间翻转区间求和(Range Reverse Range Sum)

区间翻转区间求和(Range Reverse Range Sum)

问题描述

给定一个长度为 N N 的整数序列 a0,a1,,aN1 a_0, a_1, \dots, a_{N-1}
处理 Q Q 个查询,类型如下:

  • 0 l r:将子数组 al,al+1,,ar1 a_l, a_{l+1}, \dots, a_{r-1} 原地翻转(即变为 ar1,ar2,,al a_{r-1}, a_{r-2}, \dots, a_l )。
  • 1 l r:输出区间和 i=lr1ai \sum_{i=l}^{r-1} a_i

约束条件

  • 0N2×105 0 \leq N \leq 2 \times 10^5
  • 0Q2×105 0 \leq Q \leq 2 \times 10^5
  • 0ai109 0 \leq a_i \leq 10^9
  • 0ljrjN 0 \leq l_j \leq r_j \leq N

输入

N QN\ Q
a0 a1  aN1a_0\ a_1\ \cdots\ a_{N-1}
t0 l0 r0t_0\ l_0\ r_0
t1 l1 r1t_1\ l_1\ r_1
:
tQ1 lQ1 rQ1t_{Q-1}\ l_{Q-1}\ r_{Q-1}

4 5
1 2 3 4
1 1 3
0 2 4
1 0 3
0 4 4
1 0 0
5
7
0