範例程式碼 uva612
//uva612
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
class DNA {
public:
string arr, Bak;
int score, index;
void Count(int n) {
Bak = arr;
score = 0;
for(int i = 0; i < n; ++i)
for(int j = 1; j < n; ++j)
if(arr[j] < arr[j-1]) {
swap(arr[j], arr[j-1]);
++score;
}
arr = Bak;
}
};
bool cmp(DNA x, DNA y) {
if(x.score != y.score)
return x.score < y.score;
else
return x.index < y.index;
}
int main() {
DNA S[100];
int t;
cin >> t;
while(t--) {
int n, m;
cin >> n >> m;
for(int i = 0; i < m; ++i) {
cin >> S[i].arr;
S[i].index = i;
S[i].Count(n);
}
sort(S, S + m, cmp);
for(int i = 0; i < m; ++i)
cout << S[i].arr << endl;
if(t)
cout << endl;
}
return 0;
}