AT_arc181_d [ARC181D] Prefix Bubble Sort
Description
[problemUrl]: https://atcoder.jp/contests/arc181/tasks/arc181_d
$ (1,2,\dots,N) $ の順列 $ P=(P_1,P_2,\dots,P_N) $ が与えられます。
この順列に対して以下のような操作 $ k\ (k=2,3,\dots,N) $ を考えます。
- 操作 $ k $ : $ i=1,2,\dots,k-1 $ の順に「 $ P_i\ >\ P_{i+1} $ ならば $ P $ の $ i,i+1 $ 項目の値を入れ替える」を行う。
長さ $ M $ の**広義単調増加**数列 $ A=(A_1,A_2\dots,A_M)\ (2\ \leq\ A_i\ \leq\ N) $ が与えられます。
各 $ i=1,2,\dots,M $ について、 $ P $ に対し操作 $ A_1,A_2,\dots,A_i $ をこの順に適用した後の $ P $ の転倒数を求めてください。
数列の転倒数とは 長さ $ n $ の数列 $ x=(x_1,x_2,\dots,x_n) $ の転倒数とは、 整数の組 $ (i,j)\ (1\leq\ i\ であって、\ x_i\ >\ x_j $ を満たすものの個数です。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ P_1 $ $ P_2 $ $ \dots $ $ P_N $ $ M $ $ A_1 $ $ A_2 $ $ \dots $ $ A_M $
Output Format
$ M $ 行出力してください。 $ k $ 行目には $ i=k $ に対する問題の答えを出力してください。
Explanation/Hint
### 制約
- $ 2\ \leq\ N\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ M\ \leq\ 2\ \times\ 10^5 $
- $ 2\ \leq\ A_i\ \leq\ N $
- $ P $ は $ (1,2,\dots,N) $ の順列
- $ i=1,2,\dots,M-1 $ に対して $ A_i\ \leq\ A_{i+1} $ が成り立つ
- 入力される値はすべて整数
### Sample Explanation 1
まず最初に操作 $ 4 $ が行われます。操作 $ 4 $ の過程で $ P $ は $ (3,2,4,1,6,5)\rightarrow\ (2,3,4,1,6,5)\rightarrow\ (2,3,4,1,6,5)\ \rightarrow\ (2,3,1,4,6,5) $ と変化します。操作 $ 4 $ が行われた後の $ P $ の転倒数は $ 3 $ です。 続けて操作 $ 6 $ が行われると $ P $ は最終的に $ (2,1,3,4,5,6) $ に変化し、転倒数は $ 1 $ になります。