// UVa 612 - DNA Sorting #include <algorithm> #include <iostream> #include <string> #include <vector> using namespace std; int count(const string & s) { int c = 0; for (int i = 0; i < s.length(); i++) for (int j = i + 1; j < s.length(); j++) if (s[i] > s[j]) c++; return c; } struct d { string s; int w; }; bool operator <(const d & a, const d & b) { return a.w < b.w; } int main() { int cases; cin >> cases; string line; getline(cin, line); for (; cases; cases--) { getline(cin, line); vector<d> dna; int l, n; cin >> l >> n; for (int i = 0; i < n; i++) { cin >> line; d dn = { line, count(line) * 10000 + i }; dna.push_back(dn); } sort(dna.begin(), dna.end()); for (int i = 0; i < n; i++) cout << dna[i].s << endl; if (cases > 1) cout << endl; } return 0; }
Thursday, June 11, 2015
UVa 612 - DNA Sorting
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment