AT_arc147_b [ARC147B] Swap to Sort

题目描述

现有一个$1$到$N$的排列$ P=(P_1,P_2,\ldots,P_N) $ 。你可以重复执行以下两种操作来使$P$从小到大排序。 - 操作$A:$选择一个整数$i$满足$1\ \leq\ i\ \leq\ N-1$,然后交换$P_i$和$P_{i+1}$。 - 操作$B:$选择一个整数$i$满足$1\ \leq\ i\ \leq\ N-2$,然后交换$P_i$和$P_{i+2}$。 请找出一个满足以下要求的操作序列 * 操作$A$的数量最少 * 操作的总数不超过$10^5$ 在题目条件的约束下,我们可以证明合法的解总是存在的

输入格式

#### $ N $ $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $

输出格式

设你的答案中的操作次数为$S$。输出有$S+1$行。 第一行包含整数$S$ 第$(s+1)(1≤s≤S)$行中应包含以下内容。 - 如果第$s$个操作为$A$,输出`A i`,$i$为此次操作选择的整数 - 如果第$s$个操作为$B$,输出`B i`,$i$为此次操作选择的整数 如果有多个合法解,输出一个即可。 ## 样例 #1 ### 样例输入 #1 ``` 4 3 2 4 1 ``` ### 样例输出 #1 ``` 4 A 3 B 1 B 2 B 2 ``` ## 样例 #2 ### 样例输入 #2 ``` 3 1 2 3 ``` ### 样例输出 #2 ``` 0 ``` ## 样例 #3 ### 样例输入 #3 ``` 6 2 1 4 3 6 5 ``` ### 样例输出 #3 ``` 3 A 1 A 3 A 5 ```

说明/提示

- $ 2\ \leq\ N\ \leq\ 400 $ - $ 1\ \leq\ P_i\ \leq\ N\ \,(1\ \leq\ i\ \leq\ N) $ - $ P_i\ \neq\ P_j\ \,(1\ \leq\ i\