杭电5499

来源:互联网 发布:舟山通达网络 编辑:程序博客网 时间:2024/06/18 17:43
#include<stdio.h>
#include<string.h>
typedef struct person
{
    char name[21];
    char sex[7];
    int round1;
    int round2;
    float final_mark;
}Person;




void sort(Person end[], int n)
{
    for(int i = 0; i < n; i++)
        {
            for(int k = 0; k < n - i - 1; k++)
            {
                if(end[k].final_mark < end[k+1].final_mark)
                {
                    Person temp = end[k];
                    end[k] = end[k+1];
                    end[k+1] = temp;
                }
            }
        }
}


int main()
{
    int t;
    Person a[106],fe[106],ma[106],end[106];
    int n[106],m[106];
    scanf("%d",&t);
    for(int j = 0; j < t; j++)
    {
        scanf("%d%d",&n[j],&m[j]);
        for(int i = 0; i < n[j]; i++)
        {
            scanf("%s%s%d%d",a[i].name, a[i].sex, &a[i].round1, &a[i].round2);
            //printf("%d\t%d\n",a[i].round1,a[i].round2);
        }
        int max1 = a[0].round1;
        int max2 = a[0].round2;
        for(int i = 1; i < n[j]; i++)
        {
            if(a[i].round1 > max1) max1 = a[i].round1;
            if(a[i].round2 > max2) max2 = a[i].round2;
        }
        for(int i = 0; i < n[j]; i++)
        {
            a[i].final_mark = ((300.0 / max1 * a[i].round1 * 0.3) + (300.0 / max2 * a[i].round2 * 0.7));
        }
        int  k = 0, x = 0;
        for(int i = 0; i < n[j]; i++)
        {
            if(strcmp(a[i].sex,"female") == 0)
                fe[k++] = a[i];
            if(strcmp(a[i].sex,"male") == 0)
                ma[x++] = a[i];
        }
        sort(fe, k);
        sort(ma, x);
        sort(a, n[j]);
        int w = 0,i;
        if(k > 0)  end[w++] = fe[0];  
        for(k = 0,i = w; i < m[j] - w + 1; k++)
            if(strcmp(a[k].name,end[0].name) != 0)  end[i++] = a[k];  
        sort(end, m[j]);
        printf("The member list of Shandong team is as follows:\n");
        for(i = 0; i < m[j]; i++)
            printf("%s\n",end[i].name);
    }
    return 0;
}
/*
2
10 8
dxy male 230 225
davidwang male 218 235
evensgn male 150 175
tpkuangmo female 34 21
guncuye male 5 15
faebdc male 245 250
lavender female 220 216
qmqmqm male 250 245
davidlee male 240 160
dxymeizi female 205 190
2 1
dxy male 300 300
dxymeizi female 0 0




The member list of Shandong team is as follows:
faebdc
qmqmqm
davidwang
dxy
lavender
dxymeizi
davidlee
evensgn
The member list of Shandong team is as follows:
dxymeizi


*/
0 0
原创粉丝点击