Codeforces Round 982 (Div. 2)补题
B. Stalin Sort
链接:Stalin Sort
思路:遍历数组里每一个数,假定他是最大值,将不符合条件要删去的数累加得ans,最终比较得最小值。
代码:
#include<bits/stdc++.h>
using namespace std;
int a[3000];
int main()
{
int t;
cin>>t;
int ans=0;
while(t--){
int n;
cin>>n;
int minn=INT_MAX;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
int b=a[i];//假设b是数组里最大的数
ans=i-1;//b前面有i-1个数
for(int j=i+1;j<=n;j++){
if(a[j]>b) ans++;//要是构成递减顺序,b后面若有大于b的数,则删除
//累加得ans
}
minn=min(ans,minn);//每次假设完进行比较,取最小值
}
cout<<minn<<endl;
}
return 0;
}