1 solutions

  • 0
    @ 2025-11-5 17:43:37

    C :

    #include <stdio.h>
    typedef struct DNAMAP
    {
        char map[100];
        int sum;
    }DNA;
    int main()
    {
        int m,n,i,j,k;
        DNA sort[50],t;
        scanf("%d%d\n",&m,&n);
        i=0;
        for (i=0;i<n;i++)
        {
            scanf("%s",sort[i].map);
            sort[i].sum=0;
            for (j=0;j<m-1;j++)
                for (k=j+1;k<m;k++)
                if (sort[i].map[j]>sort[i].map[k])
                    sort[i].sum++;
        }
       for (i=0;i<n-1;i++)
            for (j=i+1;j<n;j++)
            if (sort[i].sum>=sort[j].sum)
            {
                t=sort[i];
                sort[i]=sort[j];
                sort[j]=t;
            }
        for (i=0;i<n-1;i++)
            printf("%s\n",sort[i].map);
        printf("%s",sort[n-1].map);
        return 0;
    }
    
    

    C++ :

    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    typedef struct
    {
        string dna;
        int count;
    }DNA;
    DNA dna[101];
    int cmp(const void *a,const void *b)
    {
        DNA *aa = (DNA *)a;
        DNA *bb = (DNA *)b;
        return aa->count-bb->count;
    }
    int main()
    {
        int n,m;
        char c;
        cin>>n>>m;
        for(int i = 0; i < m; i++)
        {
            cin>>dna[i].dna;
            dna[i].count = 0;
            for(int j = 0; j < n; j++)
            for(int k = j+1; k < n; k++)
            {
                if(dna[i].dna[j]>dna[i].dna[k])
                dna[i].count++;
            }
        }
        qsort(dna,m,sizeof(dna[0]),cmp);
        for(int i = 0; i < m; i++)
        cout<<dna[i].dna<<endl;
        return 0;
    }
    
    • 1

    Information

    ID
    18598
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    (None)
    # Submissions
    0
    Accepted
    0
    Uploaded By