天天看点

ZOJ Problem Set - 1188 DNA Sorting

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

bool comp (const string &s1, const string &s2);

int main ()
{
	vector<string> vec;
	int block , n , m;
	string s;
	cin>>block;
	while (block--)
	{
		cin>>n>>m;
		while (m--)
		{
			cin>>s;
			vec.push_back(s);
		}
		sort(vec.begin() , vec.end() , comp);
		vector<string>::iterator it;
		for (it = vec.begin(); it != vec.end(); it++)
		{
			cout<<*it<<endl;
		}
/*		for (int i = 0; i < vec.size(); i++) //用下标的方式输出,但是要注意使用vec.size(),否则会出现问题 
		{
			cout<<vec[i]<<endl;
		}
*/		
		if (block) cout<<endl;
		vec.clear();
	}
	
	return 0;
}

bool comp (const string &s1 , const string &s2)
{
	int c1 = 0 , c2 = 0;
	for (int i = 0; i < s1.size(); i++)
	{
		for (int j = i + 1; j < s1.size(); j++)
		{
			if (s1[i] > s1[j]) c1++;
			if (s2[i] > s2[j]) c2++;
		}
	}
	return c1<c2;
}