#Z02013. 数列排序

数列排序

题目描述

给定一个数列a,这个数列满足ai != aj(i != j),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换?

输入格式

第一行是一个整数,代表数字个数n。

第二行有n个整数用空格分隔开,表示数列a。 

1≤n≤105,−231i231−1。

输出格式

只有一行,包含一个数,表示最少的交换次数。

8
8 23 4 16 77 -5 53 100
5

提示

关于第一组样例,以下5步可以完成题目要求

1、8和-5交换    形成数列 -5 23 4 16 77 8 53 100


2、23和4交换    形成数列 -5 4 23 16 77 8 53 100


3、23和8交换    形成数列 -5 4 8 16 77 23 53 100


4、77和23交换  形成数列 -5 4 8 16 23 77 53 100


5、53和77交换  形成数列 -5 4 8 16 23 53 77 100(满足题目要求)