#arc147b. [arc147_b]Swap to Sort

[arc147_b]Swap to Sort

题目描述

现有一个11NN的排列P=(P1,P2,,PN) P=(P_1,P_2,\ldots,P_N) 。你可以重复执行以下两种操作来使PP从小到大排序。

  • 操作A:A:选择一个整数ii满足1  i  N11\ \leq\ i\ \leq\ N-1,然后交换PiP_iPi+1P_{i+1}
  • 操作B:B:选择一个整数ii满足1  i  N21\ \leq\ i\ \leq\ N-2,然后交换PiP_iPi+2P_{i+2}

请找出一个满足以下要求的操作序列

  • 操作AA的数量最少
  • 操作的总数不超过10510^5

在题目条件的约束下,我们可以证明合法的解总是存在的

输入格式

标准输入格式如下

N N

P1 P_1 P2 P_2 \ldots PN P_N

输出格式

设你的答案中的操作次数为SS。输出有S+1S+1行。

第一行包含整数SS

(s+1)(1sS)(s+1)(1≤s≤S)行中应包含以下内容。

  • 如果第ss个操作为AA,输出A iii为此次操作选择的整数
  • 如果第ss个操作为BB,输出B iii为此次操作选择的整数

如果有多个合法解,输出一个即可。

样例 #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  N  400 2\ \leq\ N\ \leq\ 400
  • 1  Pi  N (1  i  N) 1\ \leq\ P_i\ \leq\ N\ \,(1\ \leq\ i\ \leq\ N)
  • Pi  Pj (1  i < j  N) P_i\ \neq\ P_j\ \,(1\ \leq\ i\ <\ j\ \leq\ N)
  • 输入均为正数