#ARC181D. 前缀冒泡排序

前缀冒泡排序

前缀冒泡排序

时间限制:2s
空间限制:1024MB

题目描述

给定 (1,2,…,N)(1,2,\ldots,N) 的一个排列 P=(P1,P2,…,PN)P=(P_1,P_2,\ldots,P_N)。对每个 k∈[2,N]k\in[2,N],定义操作 kk:依次令 i=1,2,…,k−1i=1,2,\ldots,k-1,若当前 Pi>Pi+1P_i>P_{i+1},就交换这两个相邻元素。

另给定长度为 MM 的非降序列 A=(A1,A2,…,AM)A=(A_1,A_2,\ldots,A_M),其中 2≤Ai≤N2\le A_i\le N。对每个 i=1,2,…,Mi=1,2,\ldots,M,求依次执行操作 A1,A2,…,AiA_1,A_2,\ldots,A_i 后排列 PP 的逆序对数。序列 xx 的逆序对是满足 1≤p<q≤∣x∣1\le p<q\le\vert x\vert 且 xp>xqx_p>x_q 的下标对 (p,q)(p,q)。

输入格式

N
P_1 P_2 ... P_N
M
A_1 A_2 ... A_M

输出格式

输出 MM 行,第 ii 行表示执行前 ii 个操作后的逆序对数。

样例输入 1

6
3 2 4 1 6 5
2
4 6

样例输出 1

3
1

样例输入 2

20
12 14 16 8 7 15 19 6 18 5 13 9 10 17 4 1 11 20 2 3
15
3 4 6 8 8 9 10 12 13 15 18 18 19 19 20

样例输出 2

117
116
113
110
108
105
103
99
94
87
79
72
65
58
51

数据范围

  • 2≤N≤2×1052\le N\le2\times10^5;
  • 1≤M≤2×1051\le M\le2\times10^5;
  • PP 是 (1,2,…,N)(1,2,\ldots,N) 的排列;
  • 2≤Ai≤N2\le A_i\le N,且 Ai≤Ai+1A_i\le A_{i+1}。
子任务编号 分值 特殊限制
1 8 N≤150N\le150,且 M≤150M\le150
2 18 N≤3000N\le3000,且 M≤3000M\le3000
3 22 N≤5000N\le5000
4 24 M≤50M\le50
5 28 无特殊限制