#CSES1698. 交换轮排序
交换轮排序
题目背景
翻译自 CSES-1698 题。
题目描述
给定一个包含数字 的排列数组,你的任务是通过交换轮来对数组进行排序。在每一轮交换中,你可以选择任意数量的不同元素对,并交换每一对元素。
你的任务是找到最小的交换轮数,并展示每轮交换时你如何选择交换对。
输入格式
第一行包含一个整数 ,表示数组的大小。
第二行包含 个整数 ,表示初始的排列。
输出格式
首先输出一个整数 ,表示最小的交换轮数。
然后,对于每一轮,输出交换的次数以及每次交换的索引。你可以输出任意一个有效的解决方案。
样例
5
5 2 1 3 4
2
2
1 3
4 5
1
3 5
样例1解释
初始数组是 [5, 2, 1, 3, 4]
。
经过第一轮交换,数组变成 [1, 2, 5, 4, 3]
。
经过第二轮交换,数组变成 [1, 2, 3, 4, 5]
,完成排序。
说明/提示
。