View Code of Problem 143

#include <stdio.h>
 
int main()
{
	int n,m;
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		int cnt[100]={0};
		char str[m+10][n+10]; 
		getchar();
		for(int i=0;i<m;i++)
		{
			gets(str[i]);
			for(int j=0;j<n;j++)
			{
				for(int k=j;k<n;k++)
				{
					if(str[i][j]>str[i][k])
					{
						cnt[i]++;
					}
				}
			}
		}
		int min=65000;
		int mini;
		for(int i=0;i<m;i++)
		{
			for(int j=0;j<m;j++)
			{
				if(cnt[j]<min)
				{
					min=cnt[j];
					mini=j;
				}
				else
				{
					if(cnt[j]==min)
					{
						if(j<mini)
						{
							mini=j;
						}
					}
				}
			}
			printf("%s\n",str[mini]);
			cnt[mini]=650001;
			min=65000;
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 143