#ABC265G. 012 Inversion

012 Inversion

012 Inversion

  • 时间限制:5 秒
  • 内存限制:512 MiB

题目描述

给定长度为 NN 的序列 AA,每个元素均为 0,1,20,1,2。依次处理 QQ 个操作:

  • 1 L R:输出子序列 AL,…,ARA_L,\ldots,A_R 的逆序对数。
  • 2 L R S T U:对区间 [L,R][L,R] 中的每个元素同时进行替换:00 替换为 SS,11 替换为 TT,22 替换为 UU。

逆序对是满足 L≤i<j≤RL\le i<j\le R 且 Ai>AjA_i>A_j 的下标对 (i,j)(i,j)。

输入格式

第一行包含两个整数 N,QN,Q。

第二行包含 NN 个整数 A1,…,ANA_1,\ldots,A_N。

接下来 QQ 行,每行是一条上述格式的操作。

输出格式

对每个第一类操作输出一行答案。

样例输入 1

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

样例输出 1

3
4

样例输入 2

3 3
0 1 2
1 1 1
2 1 3 0 0 0
1 1 3

样例输出 2

0
0

数据范围

对于全部数据,1≤N,Q≤1051\le N,Q\le10^5,0≤Ai,S,T,U≤20\le A_i,S,T,U\le2,1≤L≤R≤N1\le L\le R\le N。

子任务编号 分值 特殊限制
1 20 N,Q≤200N,Q\le200
2 不存在第二类操作
3 N,Q≤5000N,Q\le5000
4 40 无特殊限制