#P1034. 名单撤下前的错序数

    ID: 1034 传统题 1000ms 256MiB 尝试: 51 已通过: 12 难度: 7 上传者: 标签>高级数据结构树状数组分治CDQ分治真题可持久化线段树

名单撤下前的错序数

题目描述

有一份包含 1n1\sim n 每个编号各一次的展示名单。若在当前名单中存在两个位置 i<ji<j,但前面的编号大于后面的编号,即 ai>aja_i>a_j,则称这两个编号形成一对错序。

接下来会按给定顺序从名单中撤下 mm 个编号。对于每次撤下操作,你需要在撤下它之前,输出当前名单中的错序对数量。

输入格式

第一行包含两个整数 n,mn,m,分别表示初始名单长度和撤下次数。

接下来 nn 行,每行一个 1n1\sim n 的整数,表示初始名单从前到后的编号。

接下来 mm 行,每行一个整数,表示本次要撤下的编号。

输出格式

输出 mm 行,第 ii 行表示第 ii 次撤下之前,当前名单中的错序对数量。

样例

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

样例说明

每次操作前的名单依次为 1,5,3,4,21,5,3,4,21,3,4,21,3,4,23,4,23,4,23,23,2,对应错序对数量分别为 5,2,2,15,2,2,1

数据范围

对于 100%100\% 的数据,1n1051\le n\le 10^51m500001\le m\le 50000