zoj_1188

吃饱了哈哈,虽然又是一个人孤孤单单的吃,最后发现饭堂只剩我跟那些打饭打菜的阿姨大叔了。。继续刷水题~

/*
zoj_1188    水题
其实一开始看到这个题目想到的是逆序数和归并排序。。不过数据
很弱很弱而且还给了2s。再怎么暴力也不会超啦。。
*/
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
struct dna
{
    string s;
    int value;
}d[110];

void inint()
{
    int i;
    for( i=0;i<110;i++ )
        d[i].value=0;
}

bool cmp( dna a,dna b )
{
    return a.value<b.value;
}

int main()
{
    int N,n,m,i,j,k,sum,first;
    first=1;
    cin>>N;
    while( N-- )
    {
        inint();
        cin>>n>>m;
        for( i=0;i<m;i++ )
        {
            cin>>d[i].s;
            for( j=1;j<n;j++ )
            {
                for( k=j-1;k>=0;k-- )
                {
                    if( d[i].s[j]<d[i].s[k] )
                        d[i].value++;
                }
            }
        }
        sort( d,d+m,cmp );
        if( first!=1 )  cout<<endl;
        for( i=0;i<m;i++ )
            cout<<d[i].s<<endl;
        first++;
    }
    return 0;
}


你可能感兴趣的:(String)