AT_arc147_b.[ARC147B] Swap to Sort
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
现有一个1到N的排列$ P=(P_1,P_2,\ldots,P_N) $ 。你可以重复执行以下两种操作来使P从小到大排序。
- 操作A:选择一个整数i满足1 ≤ i ≤ N−1,然后交换Pi和Pi+1。
- 操作B:选择一个整数i满足1 ≤ i ≤ N−2,然后交换Pi和Pi+2。
请找出一个满足以下要求的操作序列
- 操作A的数量最少
- 操作的总数不超过105
在题目条件的约束下,我们可以证明合法的解总是存在的
输入格式
$ 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
输入输出样例
输入#1
4 3 2 4 1
输出#1
4 A 3 B 1 B 2 B 2
输入#2
3 1 2 3
输出#2
0
输入#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\ <\ j\ \leq\ N) $
- 输入均为正数
输入解题思路,AI测评打分。不知道怎么写?