ACPrimer

POJ 1007 DNA Sorting

May 16th, 2012
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.58 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. typedef struct{
  4.     char s[52];
  5.     int x,id;
  6. }dna;
  7. dna a[102];
  8. int cal(char s[])
  9. {
  10.     int i,j,ans=0;
  11.     for(i=0;s[i];i++)
  12.         for(j=0;j<i;j++) if(s[i]<s[j])
  13.             ans++;
  14.     return ans;
  15. }
  16. int cmp(const void *a,const void *b)
  17. {
  18.     dna aa=*(dna *)a;
  19.     dna bb=*(dna *)b;
  20.     if(aa.x!=bb.x) return aa.x-bb.x;
  21.     return aa.id-bb.id;
  22. }
  23. int main()
  24. {
  25.     int n,m,i;
  26.     scanf("%d%d",&m,&n);
  27.     for(i=0;i<n;i++)
  28.     {
  29.         scanf("%s",a[i].s);
  30.         a[i].x=cal(a[i].s);
  31.         a[i].id=i;
  32.     }
  33.     qsort(a,n,sizeof(a[0]),cmp);
  34.     for(i=0;i<n;i++) printf("%s\n",a[i].s);
  35.     return 0;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment