View Code of Problem 143

#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
struct node{
	char ch[50];
	int num;
};
bool cmp(node a,node b){
	return a.num<b.num;
}
int main()
{
	int n,m;
	cin>>n;
	cin>>m;
	node ww[100];
	for(int i=0;i<m;i++){
		//scanf("%s",ww[i].ch);
		cin>>ww[i].ch;
		int count=0; 
		for(int j=0;j<n;j++){//比较字母大小,计算反转数 
			for(int p=j+1;p<n;p++)
				if(ww[i].ch[j]>ww[i].ch[p])
					count++;
		}
		ww[i].num=count; 
	}
	sort(ww,ww+m,cmp);
	for(int i=0;i<m;i++)
		//printf("%s \n",ww[i].ch);
		cout<<ww[i].ch<<endl;
	 
    return 0;
}

Double click to view unformatted code.


Back to problem 143