#include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
using namespace std;
int x,y;
struct dna
{
int index;
string a;
int value;
/*bool operator <(const dna &b) const
{
if(value==b.value) ;//index>b.index;
else return value<b.value;
}*/
}dna1[115];
bool cmp(dna a,dna b)
{
if(a.value!=b.value)
return a.value<b.value;
return a.index<b.index;
}
void getvalue(int index)
{
int value=0;
for(int i=0;i<dna1[index].a.size();i++)
{
//if(dna1[index].a[i]=='A') continue;//并没有什么卵用的剪枝
for(int j=i+1;j<dna1[index].a.size();j++)
{
if(dna1[index].a[i]>dna1[index].a[j])
{
value++;
}
}
}
dna1[index].value=value;
}
int main()
{
while(cin>>x>>y)
{
for(int i=0;i<y;i++)
{
cin>>dna1[i].a;
getvalue(i);
dna1[i].index=i;
}
sort(dna1,dna1+y,cmp);
for(int i=0;i<y;i++)
{
cout<<dna1[i].a<<endl;
}
}
return 0;
}
某个妹子来问的水题
本来想重载操作符的但是忘了方法 只好上了cmp函数