POJ 1007

来源:互联网 发布:谷歌拼音输入法linux 编辑:程序博客网 时间:2024/06/05 05:19
#include <stdio.h>
#include<algorithm>
typedef struct SNode{
    int i_value;
    char* ca_data;
}SNode;
char ca_buf[5100];
int fCmp(SNode a,SNode b)
{
    return a.i_value < b.i_value;
}
int main(void)
{
    int len,n,i,j;
    SNode sa_output[100];
    int ca_value[100][4] = {0};
    char* p_index = ca_buf;
    scanf("%d %d",&len,&n);


    for (i = 0; i < n; ++i,p_index += 51)
    {
        sa_output[i].ca_data = p_index;






        scanf("%s",p_index);
        sa_output[i].i_value = 0;
        for(j = len -1 ; j>=0;--j)
        {
            int i_c_value = 4;
            switch(p_index[j])
            {
            case 'A':
                ++ca_value[i][1];
                --i_c_value;
            case 'C':
                --i_c_value;
                ++ca_value[i][2];
            case 'G':
                --i_c_value;
                ++ca_value[i][3];
            case 'T':
                --i_c_value;
                sa_output[i].i_value += ca_value[i][i_c_value];
                break;
            }


        }


    }
    std::sort(sa_output,sa_output+n,fCmp);
    for(i = 0 ; i < n;++i)
    {
        printf("%s\n",sa_output[i].ca_data);
    }
}
0 0