暴力法,拿了20分,有没有同学可以改进的。。欢迎评论?
#include <iostream>
#include <algorithm>
#include <string.h>
#include <map>
using namespace std;
int cnt,n,flag;
vector <int> a,b;
int getni(vector <int>a){
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(a[i]>a[j]) cnt++;
}
}
return cnt;
}
void reverse(vector <int>&a,int i,int j){
while(i!=j){
int temp = a[i];
a[i]=a[j];
a[j]=temp;
i++;
if(i!=j) j--;
}
}
int main(){
cin>>n;
a.resize(n);
b.resize(n);
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
if(!flag){
cout<<1;
flag =1;
} else cout<<" "<<1;
for(int j=i+1;j<n;j++){
b=a;
reverse(b,i,j);
cnt =0;
cout<<" "<<getni(b);
}
}
return 0;
}