1046: 这是一道假假假假的签到题

Memory Limit:256 MB Time Limit:3.000 S
Judge Style:Text Compare Creator:
Submit:43 Solved:10

Description

——Life is a Cycle !

$JingNian$ 在给集训队的 $n$ 个好朋友们按身高排队,但是大家并没有按照身高顺序排成一列,而是随机站好的一列。

集训队的大家想调戏一下 $JingNian$:

    ·1 选择一个区间 $[l, r](0 \leq l < r < n)$。

    ·2 每次让区间末尾的 $1$ 个同学出列并站到区间起始位置。

    每次调戏时,大家可以用 $k$ 次操作 $2$。

操作结束后,大家会询问 $JingNian$,整个队伍有多少对同学没有按照身高顺序排列。

询问结束后,大家会恢复初始的身高序列。

聪明的你能不能帮助 $JingNian$ 找出有多少对同学没有按照身高顺序排列?

Input

输入包括 $q + 2$ 行:

第一行,输入用空格分隔的两个数 $n\ (2\ \leq\ n\ \leq\ 200000)、q\ (1\ \leq\ q\ \leq\ 20000)$ ,$n$ 代表集训队有 $n$个同学,$q$ 代表大家调戏 $JingNian$ 的次数;

第二行,输入用空格分隔的 $n$ 个数代表大家的身高数组 $a\ (1\ \leq\ a_i\ \leq\ 10^{9})$;

第三行至第 $q + 2$ 行,每行包括三个数字 $l,r,k\ (0 \leq l \leq r < n,\ 0\ \leq\ k\ \leq\ 10)$,代表重复 $k$ 次操作:每次让区间 $[l, r]$ 末尾的 $1$ 个同学出列并站到区间 $[l, r]$ 起始位置。

注意询问是不继承的,每次询问的操作是在原数组的基础上进行操作。

Output

输出包括 $q$ 行:

对于每一次询问,输出每次操作后,整个队伍有多少对同学没有按照身高顺序排列。

Sample Input Copy

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

Sample Output Copy

2
2
4
4
2

HINT

样例解释:

对于$l=1,r=3,k=1$,身高数组变为$[1,4,2,3,5]$,有下标为$(1,2),(1,3)$的 $2$ 对同学没有按照身高顺序排列,所以本次答案为 $2$;

对于$l=1,r=3,k=2$,身高数组变为$[1,3,4,2,5]$,有下标为$(1,3),(2,3)$的 $2$ 对同学没有按照身高顺序排列,所以本次答案为 $2$;

对于$l=0,r=4,k=1$,身高数组变为$[5,1,2,3,4]$,有下标为$(0,1),\ (0,2),\ (0,3),\ (0,4)$的 $4$ 对同学没有按照身高顺序排列,所以本次答案为 $4$;

对于$l=1,r=4,k=2$,身高数组变为$[1,4,5,2,3]$,有下标为$(1,3),\ (1,4),\ (2,3),\ (2,4)$的 $4$ 对同学没有按照身高顺序排列,所以本次答案为 $4$;

对于$l=2,r=4,k=1$,身高数组变为$[1,2,5,3,4]$,有下标为$(2,3),\ (2,4)$的 $2$ 对同学没有按照身高顺序排列,所以本次答案为 $2$。


保证答案在有符号64位整型范围内。

题目IO量较大,请使用scanf或printf代替cin或cout。