View Code of Problem 126

#include<stdio.h>

int main()
{
	int m, n;
	char s[101][51];
	int inv[101]={0};
	while(scanf("%d%d", &n, &m) != EOF)
	{
		getchar();
		for(int i = 0; i < m; i++)
		{
			int count = 0;
			gets(s[i]);
			for(int j = 0; j < n-1; j++)
				for(int k = j+1; k < n; k++)
					if(s[i][j] > s[i][k])
						count++;
			inv[i] = count;
		}
		for(int i = 0; i < m; i++)
		{
			int min = 0;
			for(int j = 0; j < m; j++)
				if(inv[min] > inv[j])
					min = j;
			puts(s[min]);
			inv[min] = 9999;
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 126