Go to movies Ⅱ

Accepts: 0
Submissions: 59
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
玩积木玩到无聊的乐乐决定在集结小伙伴看一次电影。
当售票员再一次看到乐乐带着一群小伙伴来看电影时,觉得乐乐是一个很机智的人,为乐乐准备了一个任务,如果完成就可以免费进去看电影啦!
为了获得免费的电影票,为了在女孩子面前不丢脸,乐乐决定向更机智的你求助。
任务如下:
所有的小伙伴必须排成一队进入,共n人,每个人的身高是Hi。乐乐需要快速的发现有多少对人站反了 $(i < j$ && $H_i > H_j)$(即高的站在矮的前面),在这一过程中有可能有小伙伴加入或者有没有耐心的小伙伴离开,每当一个小伙伴加入或者离开的时候乐乐就要说出有多少对人站反了。注:乐乐知道所有人的相对高度,每个人的身高范围是$[1,n]$。
输入描述
有多组测试数据,大约$10$组。
第一行两个整数 $n,m$
第二行$n$个整数,表示$n$个人排成队之后,从左到右每个人的身高,存在身高相同的人。
接下来$m$行
$0$ $x$ $y$ 表示有一个身高为$y$的人插在$x$后面,$x = 0$表示插在最前面。$(1 \leq y \leq n)$
1 x 表示第x个人(从左到右)离开。
输出描述
对于每组数据,每个操作,输出有几对是排错位置的
输入样例
5 5
5 4 3 2 1
0 0 2
0 1 3
1 3
1 3
1 3
输出样例
11
13
9
6
4
Hint
操作1之后,序列为 2 5 4 3 2 1,站错位置的对数为11
操作2之后,序列为 2 3 5 4 3 2 1,站错位置的对数为13
操作3之后,序列为 2 3 4 3 2 1,站错位置的对数为9
操作4之后,序列为 2 3 3 2 1,站错位置的对数为6
操作5之后,序列为 2 3 2 1,站错位置的对数为4
对于100%的数据,n和m的范围[1,20000];
数据保证合法,插入和删除的位置一定存在。