北大oj百练-1007

思路:结构体+快排

#include
#include 
#include
#include
using namespace std;
struct Node
{
	char a[100];
	int sum=0;
};
struct Node node[100];
int cmp(const Node &a,const Node &b)
{
    return a.sum<b.sum;
}
char temp[100];
int main()
{
	int m,n,sum=0;
	scanf("%d%d",&n,&m);
	for(int i=0;i<m;i++)
	{
		scanf("%s",node[i].a);
		for(int j=0;j<n-1;j++)
		{
			for(int k=j+1;k<n;k++)
			{
				if(node[i].a[j]>node[i].a[k])
				node[i].sum++;
			}
		}
	}
	sort(node,node+m,cmp);
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<n;j++)
		{
			printf("%c",node[i].a[j]);
		}
		printf("\n");
	}
}

你可能感兴趣的:(北大oj百练-1007)