得分:
#1AC,#2、#3、#4、#8 WA,#5、#6、#7、#9、#10 TLE。
样例输出
9
题目
题目描述
给你 n 个数 a_1,a_2,a_3,...,a_n,现要将其排成非递减的顺序,对于当前你每次可以做如下操作
a_1,a_2,a_3,...,a_n→a_n,a_1,a_2,a_3,...,a_{n−1}
现在问你最少需要操作几次使得序列变成非递减。
输入格式
第一行先输入一个整数 n
第二行输入 n 个整数
输出格式
输出一个整数,表示最少的操作次数
如果无法使得序列变成非递减,输出 -1
样例
Input 1
6 4 5 6 1 2 3
Output 1
3
样例解释
这里可以通过操作将序列变为 1 2 3 4 5 6
,需要三次操作
数据范围
2\le n\le 10^5, 1\le a_i\le 10^5
代码:
#include<iostream>
const int N=1e5+10;
using namespace std;
int n,a[N],cnt;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if(a[i]>a[j]){
swap(a[i],a[j]);
cnt++;
}
}
}
cout<<cnt;
return 0;
}