#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;
}
PAT甲1137 Final Grading (25)
猜你喜欢
转载自blog.csdn.net/yhy489275918/article/details/80488779
今日推荐
周排行