http://acm.pku.edu.cn/JudgeOnline/problem?id=1007
Код:
#include <stdio.h> int unsorted(char *str, int len) { int i,j; int n=0; for(i=0;i<len-1;i++) { for(j=i+1;str[j];j++) { if(str[i] > str[j]) n++; } } return n; } void insert(int a[], int b[], int s, int n) { int i,j; for(i=0;i<n;i++) if(a[i] > s) break; for(j=n;j>i;j--) { a[j] = a[j-1]; b[j] = b[j-1]; } a[i] = s; b[i] = n; } int main() { int n,m; char DNA[100][51]; int tmp1[100]; int tmp2[100]; int i, s; scanf("%d %d", &n, &m); for(i=0;i<m;i++) { scanf("%s", DNA[i]); s = unsorted(DNA[i], n); insert(tmp1, tmp2, s, i); } for(i=0;i<m;i++) { printf("%s\n", DNA[tmp2[i]]); } return 0; }