POJ 1007 (将一个数和他后头的数进行比较)
POJ 1007 (将一个数和他后面的数进行比较)
/* * POJ_1006.cpp * * Created on: 2013年10月14日 * Author: Administrator */ #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #include <cstdlib> using namespace std; struct DNA { int measure; int index; char sequence[55]; bool operator<(const DNA& n) const { if (measure < n.measure) { return true; } if (measure == n.measure && index < n.index) { return true; } return false; } } dnas[105]; int main() { int n, m, k; int i, j; while (scanf("%d%d", &n, &m) != EOF) { for (i = 0; i < m; ++i) { scanf("%s", dnas[i].sequence); dnas[i].measure = 0; dnas[i].index = i; for (j = 0; j < n; ++j) { for (k = j + 1; k < n; ++k) { string sequence = dnas[i].sequence; if (sequence[j] > sequence[k]) { dnas[i].measure++; } } } } sort(dnas, dnas + m); for (i = 0; i < m; ++i) { printf("%s\n", dnas[i].sequence); } } return 0; }