HDU 5499 SDOI

来源:互联网 发布:大数据软件平台 编辑:程序博客网 时间:2024/05/23 16:35
特别坑的一道题
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int maxm=305;int n,m;int queue[maxm]; char s[maxm];struct node{    char name[maxm];    char sex[maxm];    double r1,r2;    double z;} t[maxm];double cmp(node p,node q){    return p.z>q.z;}int main(){    int T;    scanf("%d",&T);    while(T--)    {        scanf("%d%d",&n,&m);        double MAXr1=-1,MAXr2=-1;        double socre=-1;        int w=-1,cnt=0;        for(int i=0; i<n; i++)        {            scanf("%s%s%lf%lf",t[i].name,t[i].sex,&t[i].r1,&t[i].r2);            MAXr1=max(MAXr1,t[i].r1);            MAXr2=max(MAXr2,t[i].r2);        }        double y1=(300.0/MAXr1);        double y2=(300.0/MAXr2);        for(int i=0; i<n; i++)        {            t[i].z=t[i].r1*y1*0.3+t[i].r2*y2*0.7;        }        sort(t,t+n,cmp);        for(int i=0; i<n; i++)        {           if(strcmp(t[i].sex,"female")==0)           {               w=i;               queue[cnt++]=i;               break;           }        }        for(int i=0;i<n;i++)        {            if(i!=w)            {                if(cnt==m)                {                    break;                }                queue[cnt++]=i;            }        }        printf("The member list of Shandong team is as follows:\n");        for(int i=0; i<m; i++)        {            for(int j=i; j<m; j++)            {                if(t[queue[j]].z>t[queue[i]].z)                {                    double temp=t[queue[i]].z;                    t[queue[i]].z=t[queue[j]].z;                    t[queue[j]].z=temp;                    strcpy(s,t[queue[i]].name);                    strcpy(t[queue[i]].name,t[queue[j]].name);                    strcpy(t[queue[j]].name,s);                }            }        }        for(int i=0; i<cnt; i++)        {            printf("%s\n",t[queue[i]].name);        }    }    return 0;}

0 0
原创粉丝点击