#include<bits/stdc++.h>
using namespace std;
const int maxn=40000;
int p,m,n;
struct stu{
string id;
int gp=-1,gmid=-1,gfinal=-1;
int g=-1;
}s[maxn];
bool cmp(stu a,stu b){
if(a.g!=b.g) return a.g>b.g;
else return a.id<b.id;
}
map<string,int> mapp;
int main(){
scanf("%d%d%d",&p,&m,&n);
int count=1;
for(int i=0;i<p;i++){
char idd[25];int score;string id;
scanf("%s %d",idd,&score);
if(score<200) continue;
id=idd;
if(!mapp.count(idd)){
mapp[id]=count++;
}
int now=mapp[id];
s[now].gp=score;
s[now].id=id;
}
for(int i=0;i<m;i++){
char idd[25];int score;string id;
scanf("%s %d",idd,&score);id=idd;
if(!mapp.count(id)) continue;
int now=mapp[id];
s[now].gmid=score;
}
for(int i=0;i<n;i++){
char idd[25];int score;string id;
scanf("%s %d",idd,&score);id=idd;
if(!mapp.count(id)) continue;
int now=mapp[id];
s[now].gfinal=score;
}
for(int i=0;i<count;i++){
if(s[i].gfinal!=-1){
if(s[i].gmid>s[i].gfinal){
s[i].g=(int)round(s[i].gmid*0.4+s[i].gfinal*0.6); //此处注意四舍五入!
} else {
s[i].g=(int)round(s[i].gfinal*1.0);
}
if(s[i].g<60) s[i].g=-1;
}
}
sort(s,s+count,cmp);
for(int i=0;s[i].g!=-1;i++){
cout<<s[i].id;
printf(" %d %d %d %d\n",s[i].gp,s[i].gmid,s[i].gfinal,s[i].g);
}
return 0;
}
1137 Final Grading (25)
最新推荐文章于 2024-10-15 19:28:18 发布