#include <iostream>
#include <cstdio>
#include <string>
#include <map>
using namespace std;
int numOutOfOrder(string s)
{
if(s.length() == 0)return 0;
int sum = 0,count = 0;
int i,j;
for(i = 0; i < s.length(); i++)
{
count = 0;
for(j = 0; j < i; j++)
{
if(s[j] > s[i])count++;
}
sum += count;
}
return sum;
}
int main()
{
int n,m;
int key;
string s;
multimap<int,string> mis;
multimap<int,string>::iterator it;
freopen("in.txt","r",stdin);
cin>>n>>m;
while(m-- > 0)
{
cin>>s;
key = numOutOfOrder(s);
mis.insert(make_pair(key,s));
}
for(it = mis.begin(); it != mis.end(); it++)
cout<<it->second<<endl;
return 1;
}
测试数据:
10 6
AACATGAAGG
TTTTGGCCAA
TTTGGCCAAA
GATCAGATTT
CCCGGGGGGA
ATCGATGCAT