PAT TOP頂級 1027 Larry and Inversions (35 分)
阿新 • • 發佈:2019-01-01
暴力法,拿了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; }