T334455 犇犇学习
题目描述
犇犇⾮常讨厌学习,但是在众众不懈的努⼒教学下,还是成功写出了冒泡排序。
```
for (int i = 1; i i; j--) {
if (a[j] < a[j - 1]) {
swap(a[j], a[j - 1]); // 交换a[j]和a[j - 1]
}
}
}
```
但是众众怀疑犇犇并没有真正学会冒泡排序,所以他想了⼀个⻓为n的序列a,序列中1到n各刚好出现⼀次,要
求犇犇⽤这个序列亲⼿模拟⼀遍冒泡排序。
然⽽犇犇不想模拟那么多次交换,所以她打算趁众众不注意,偷偷把任意两个数先调换⼀下位置,但是她不知道
调换哪两个数后,可以让冒泡排序时交换的次数最少,所以只好请你帮她算⼀下,她在模拟冒泡排序时最少要交换
多少次。
当然,犇犇也可以选择超级乖巧,在众众不注意时什么也不⼲。
输入格式
第⼀⾏包含整数n。
第⼆⾏包含n个整数ai,是⼀个n的排列。
输出格式
输出⼀个整数,表示犇犇在模拟冒泡排序时最少需要进⾏交换的次数。
说明/提示
【样例 1 解释】
调换a2和a6,排列变成[3,1,2,4,5,6],模拟冒泡排序时只需要交换2次
【样例 2 解释】
排列本身已经有序,不需要提前调换任何数,模拟冒泡排序时也不需要进⾏任何交换。
【数据规模】
对于30%的数据,1