#CSES2074. 反转与求和

反转与求和

题目背景

翻译自 CSES-2074 题。

题目描述

给定一个包含 nn 个整数的数组,您需要处理以下操作:

  1. 反转一个子数组
  2. 计算一个子数组中所有值的和

输入格式

第一行输入两个整数 nnmm,分别表示数组的大小和操作的次数。数组中的元素编号为 1,2,...,n1, 2, ..., n

第二行输入 nn 个整数 x1,x2,...,xnx_1, x_2, ..., x_n,表示数组的内容。

接下来的 mm 行描述了每次操作。每行包含三个整数 tt, aabb。如果 t=1t = 1,则表示需要反转从位置 aa 到位置 bb(包括 aabb)的子数组;如果 t=2t = 2,则表示需要计算从位置 aa 到位置 bb(包括 aabb)的子数组的值的和。

输出格式

对于每个 t=2t = 2 的操作,输出该操作的结果,即子数组的和。

样例

Sample Input 1

8 3
2 1 3 4 5 3 4 4
2 2 4
1 3 6
2 2 4

Sample Output 1

8
9

说明/提示

1n2×1051 \leq n \leq 2 \times 10^5

1m1051 \leq m \leq 10^5

0xi1090 \leq x_i \leq 10^9

1abn1 \leq a \leq b \leq n