#include<iostream> #include<cstdio> #include<string> #include<cmath> #include<algorithm> using namespace std; int fun(string s) { int sum=0; for(int i=0;i<s.size();i++) { for(int j=i+1;j<s.size();j++) { if(s[i]>s[j]) sum++; } } return sum; } bool cmp(pair<string,int>x,pair<string,int>y) { if(fun(x.first)<fun(y.first)) return true; if(fun(x.first)==fun(y.first)&&x.second>y.second) return true; return false; } int main() { int n,m; cin>>n>>m; pair<string,int>a[m]; for(int i=0;i<m;i++) { string temp; cin>>temp; a[i]=make_pair(temp,i); } sort(a,a+m,cmp); for(int i=0;i<m;i++) { cout<<a[i].first<<endl; } } |
Double click to view unformatted code.