题目描述
Rosi 很喜欢数字,她把 1 到 n 写在卡片上,打乱后排成一列,得到一个排列
P1,P2,…,Pn.
Miro 看着她操作时,想出了下面这个游戏。
对于一个给定的数 K,定义一次操作如下:按顺序枚举 i=1,2,…,K−1,如果当前 Pi>Pi+1,就交换 Pi 和 Pi+1。
Miro 选择了一个非降序列
A=(A1,A2,…,Am),
其中 2≤Aj≤n。他先对当前排列执行参数为 A1 的操作,再对得到的新排列执行参数为 A2 的操作,依此类推,直到执行完参数为 Am 的操作。
每次操作后,他都想让 Rosi 告诉他当前排列的逆序对数量。
请写程序,求出每一步操作后的逆序对数量。
排列 P 中的一个逆序对是一个有序下标对 (i,j),满足 1≤i<j≤n 且 Pi>Pj。
输入格式
第一行包含两个整数 n,m。
第二行包含一个排列 P1,P2,…,Pn。
第三行包含一个非降序列 A1,A2,…,Am。
输出格式
输出 m 行。第 i 行输出依次执行操作 A1,A2,…,Ai 后,当前排列的逆序对数量。
数据范围
- 2≤n≤2⋅105
- 1≤m≤2⋅105
- 2≤Ai≤n
- Ai≤Ai+1,对所有 1≤i<m 成立。
子任务
| 子任务 |
分值 |
依赖子任务 |
限制 |
额外限制 |
| 0 |
- |
- |
样例 |
| 1 |
8 |
n≤1000,m≤100 |
- |
| 2 |
15 |
1 |
n≤104,m≤104 |
| 3 |
13 |
- |
n≤2⋅105,m=1 |
| 4 |
25 |
n≤2⋅105,m=n−1 |
Ai=i+1 |
| 5 |
39 |
1-4 |
n≤2⋅105,m≤2⋅105 |
- |
只有通过某个子任务及其所有依赖子任务中的全部测试,才能获得该子任务分数。
样例
3 2
3 1 2
2 3
1
0
样例说明
执行 A1=2 的操作后,排列变为 (1,3,2),逆序对数量为 1。
执行 A2=3 的操作后,排列变为 (1,2,3),逆序对数量为 0。