Where is mistake in my code?
[cpp]#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
typedef struct DNA_s DNA;
struct DNA_s
{
string seq;
int inversions;
};
bool operator<(const DNA& x, const DNA& y)
{
return x.inversions < y.inversions;
}
int value(char c) {
if (c == 'A') return 0;
if (c == 'C') return 1;
if (c == 'G') return 2;
if (c == 'T') return 3;
}
int main()
{
int inst, n, m, i, w, z, sumInversions;
string takeRead;
cin >> inst;
for (; inst > 0 ; --inst)
{
cin >> n >> m;
vector<DNA> set;
for (i = 0; i < m; i++) {
DNA tmp;
cin >> tmp.seq;
int count[4] = { 0, 0, 0, 0 };
sumInversions = 0;
for (w = 0; w < tmp.seq.size(); ++w)
{
count[value(tmp.seq[w])]++;
for (z = value(tmp.seq[w])+1; z < 4; ++z) { sumInversions += count[z]; }
/*
*if (tmp.seq[w] == 'A') { continue; }
*for (z = w; z < tmp.seq.size(); ++z)
*{
* if (value(tmp.seq[w]) > value(tmp.seq[z]))
* {
* sumInversions++;
* }
*}
*/
}
tmp.inversions = sumInversions;
set.push_back(tmp);
}
sort(set.begin(), set.end());
for (i = 0; i < set.size(); ++i) {
cout << set
.seq << '\n';
}
if (inst-1 > 0) { cout << '\n'; }
}
return 0;
}
[/cpp]