CF441D Valera and Swaps

题目描述

时间限制 $1s$ | 空间限制 $256M$ 给出长度为$n$的排列$p$,定义长度为$n$的*本体排列* 为满足$p_i=i$($1\le i\le n$)的排列。互换操作是指对于$(i,j)$($1\le i,j\le n$)互换$p_i,p_j$在排列中的位置。设$f(p)$为将排列$p$通过互换操作转变为本体排列的最小操作数。请求出如何花费最小的步数将排列$p$转变为排列$q$使得$f(q)=m$。

输入格式

第一行一个正整数$n$ ($1\le n\le 3000$),表示排列$p$的长度。

输出格式

第一行一个正整数$k$,表示最小操作数。 第二行$2k$个正整数$x_i$,描述操作方案,表示进行了$(x_1,x_2),(x_3,x_4),...,(x_{2k-1},x_{2k})$的互换操作。 如果有多种方案,输出$x$数组字典序最小的一种。 #### 样例输入输出: | 样例1输入 | 样例1输出 | 样例2输入 | 样例2输出 | | --------------------- | ------------- | --------------------- | --------- | | 5
1 2 3 4 5
2 | 2
1 2 1 3 | 5
2 1 4 5 3
2 | 1
1 2 |

说明/提示

Sequence $ x_{1},x_{2},...,x_{s} $ is lexicographically smaller than sequence $ y_{1},y_{2},...,y_{s} $ , if there is such integer $ r $ $ (1