#P1217. 最小任意交换次数

最小任意交换次数

题目描述

有N个瓶子,编号1~N,放在架子上。

要求每次拿起2个瓶子,交换它们的位置,使得编号按从小到大排列。

比如有5个瓶子:

2 1 3 5 4

经过若干次交换,使得瓶子的序号为:

1 2 3 4 5

对于这么简单的情况,显然,至少需要交换2次就可以复位。

如果N个瓶子,需要几次才能复位呢?


输入格式

第一行一个整数N(1≤N≤10^3);

第二行N个整数,为瓶子初始的位置。

输出格式

一个整数,为要将这些瓶子复位,最少交换的次数。


输入/输出样例

5 
3 1 2 5 4
3
5 
5 4 3 2 1
2

说明/提示

时间1000ms,内存256MiB