Swap to Sort

AtCoder
IDarc147_b
Time2000ms
Memory256MB
Difficulty
You are given a permutation $P=(P_1,P_2,\ldots,P_N)$ of $(1,2,\ldots,N)$. You can repeat the following two kinds of operations in any order to make $P$ sorted in increasing order. * Operation $A$: Choose an integer $i$ such that $1 \leq i \leq N-1$, and swap $P_i$ and $P_{i+1}$. * Operation $B$: Choose an integer $i$ such that $1 \leq i \leq N-2$, and swap $P_i$ and $P_{i+2}$. Find a sequence of operations with the following property: * The number of Operations $A$ is the minimum possible. * The total number of operations is not larger than $10^5$. Under the Constraints of this problem, we can prove that a solution always exists. ## Constraints * $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)$ * All values in input are integers. ## Input Input is given from Standard Input in the following format: $N$ $P_1$ $P_2$ $\ldots$ $P_N$ [samples]
Samples
Input #1
4
3 2 4 1
Output #1
4
A 3
B 1
B 2
B 2

In this Sample Output, $P$ changes like this: $(3,2,4,1) \rightarrow (3,2,1,4) \rightarrow (1,2,3,4) \rightarrow (1,4,3,2) \rightarrow (1,2,3,4)$.
Note that you don't have to minimize the total number of operations.
Input #2
3
1 2 3
Output #2
0
Input #3
6
2 1 4 3 6 5
Output #3
3
A 1
A 3
A 5
API Response (JSON)
{
  "problem": {
    "name": "Swap to Sort",
    "description": {
      "content": "You are given a permutation $P=(P_1,P_2,\\ldots,P_N)$ of $(1,2,\\ldots,N)$. You can repeat the following two kinds of operations in any order to make $P$ sorted in increasing order. *   Operation $A$: ",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "arc147_b"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "You are given a permutation $P=(P_1,P_2,\\ldots,P_N)$ of $(1,2,\\ldots,N)$.\nYou can repeat the following two kinds of operations in any order to make $P$ sorted in increasing order.\n\n*   Operation $A$: ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments