将{0,1,2,……,N-1}的任意一个排列进行排序并不困难,这里加一点难度,要求你只能通过一系列的 Swap(0,*)—— 即将一个数字与 0 交换——的操作,将初始序列增序排列。例如对于初始序列{4,0,2,1,3},我们可以通过下列操作完成排序:
- Swap(0,1)⟹{4,1,2,0,3}
- Swap(0,3)⟹{4,1,2,3,0}
- Swap(0,4)⟹{0,1,2,3,4}
本题要求你找出将前 N 个非负整数的给定排列进行增序排序所需要的最少的与 0 交换的次数。
输入格式:
输入在第一行给出正整数 N(≤105);随后一行给出{0,1,2,……,N-1}的一个排列。数字间以空格分隔。
输出格式:
在一行中输出将给定序列进行增序排序所需要的最少的与 0 交换的次数。
输入样例:
10
3 5 7 2 6 4 9 0 8 1
输出样例:
9