PAT甲1137 Final Grading (25)

#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <iostream>
using namespace std;

struct student
{
    string name;
    int pscore;
    int mscore;
    int fscore;
    int fgrade;
    student()
    {
        pscore=-1;
        mscore=-1;
        fscore=-1;
        fgrade=-1;
    }
}stu[20010];

int A[20010];

int P,M,N;
map<string,int> mp;

bool cmp(int a,int b)
{
    if(stu[a].fgrade!=stu[b].fgrade)return stu[a].fgrade>stu[b].fgrade;
    else return stu[a].name<stu[b].name;
}

int main()
{
    scanf("%d%d%d",&P,&M,&N);
    char name[30];
    int num=0;
    for(int i=0;i<P;i++)
    {
        scanf("%s",&name);
        if(mp.find(name)==mp.end())
        {
            A[num]=num;
            mp[name]=num;
            stu[num].name=name;
            num++;
        }
        scanf("%d",&stu[mp[name]].pscore);
    }
    for(int i=0;i<M;i++)
    {
        scanf("%s",&name);
        if(mp.find(name)==mp.end())
        {
            A[num]=num;
            mp[name]=num;
            stu[num].name=name;
            num++;
        }
        scanf("%d",&stu[mp[name]].mscore);
    }
    for(int i=0;i<N;i++)
    {
        scanf("%s",&name);
        if(mp.find(name)==mp.end())
        {
            A[num]=num;
            mp[name]=num;
            stu[num].name=name;
            num++;
        }
        scanf("%d",&stu[mp[name]].fscore);
    }
    for(int i=0;i<num;i++)
    {
        if(stu[i].mscore>stu[i].fscore)
        {
            stu[i].fgrade=(int)(stu[i].mscore*1.0*0.4+stu[i].fscore*1.0*0.6+0.5);
        }
        else
        {
            stu[i].fgrade=stu[i].fscore;
        }
    }
    sort(A,A+num,cmp);
    for(int i=0;i<num;i++)
    {
        if(stu[A[i]].fgrade>=60&&stu[A[i]].pscore>=200)
        {
            printf("%s %d %d %d %d\n",stu[A[i]].name.c_str(),stu[A[i]].pscore,stu[A[i]].mscore,stu[A[i]].fscore,stu[A[i]].fgrade);
        }
    }
    system("pause");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/yhy489275918/article/details/80488779