[ABC350] C - Sort

C - Sort

Time Limit: 2 sec / Memory Limit: 1024 MB

分数: 300 分

题面

给定一个排列 ,其中元素为
通过执行以下操作将 转换为 ,操作次数在 之间(包括0和N-1):

  • 操作:选择任意一对整数 ,其中 。交换 中第 和第 位置的元素。

在给定的限制条件下,证明总是可以将 转换为

限制条件

  • 的一个排列。
  • 所有输入值均为整数。

输入

从标准输入中以以下格式给出:


输出

为操作次数。输出共 行。
第一行应包含
行()应包含第 次操作选择的整数 ,用空格分隔。
满足题目要求条件的任何输出都将被视为正确。


输入样例 1

5
3 4 1 2 5

输出样例 1

2
1 3
2 4

操作将序列改变如下:

  • 最开始,
  • 第一次操作交换第一个和第三个元素,得到
  • 第二次操作交换第二个和第四个元素,得到

其他输出,例如以下形式,也被视为正确:

4
2 3
3 4
1 2
2 3


输入样例 2

4
1 2 3 4

输出样例 2

0


输入样例 3

3
3 1 2

输出样例 3

2
1 2
2 3

0条搜索结果。