POJ 1007
#include<iostream> #include<string> #include<cstdio> #include <algorithm> #include<stdlib.h> using namespace std; int cmp(int a,int b){ return a<b; } void sort(int number); void measure_DNA(int i,string a); struct struct_dna { string dna; int count; }; struct_dna dnalist[100]; int main() { int number; string DNA; int len; cin>>len; cin>>number; int* a=new int[number]; for(int i=0;i<number;i++) { cin>>DNA; dnalist[i].dna=DNA; measure_DNA(i,DNA); } sort(number); for(int i=0;i<number;i++) cout<<dnalist[i].dna<<endl; return 0; } void measure_DNA(int i,string a) { int len=a.length(); int sum=0; for(int i=0;i<len-1;i++) { if(a[i]=='A') continue; for(int j=i+1;j<len;j++) { if(a[i]>a[j]) sum++; } } dnalist[i].count=sum; } void sort(int number) { int MinIndex; struct_dna temp; for(int i=0;i<number;i++) { MinIndex=i; for(int j=i+1;j<number;j++) { if(dnalist[j].count<dnalist[MinIndex].count) MinIndex=j; } temp=dnalist[MinIndex]; dnalist[MinIndex]=dnalist[i]; dnalist[i]=temp; } }