#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
struct Student{
string id;
int C[2];
int M[2];
int E[2];
int A[2];
}stu[3000];
bool cmp1(Student a,Student b){
return a.C[0]>b.C[0];
}
bool cmp2(Student a,Student b){
return a.M[0]>b.M[0];
}
bool cmp3(Student a,Student b){
return a.E[0]>b.E[0];
}
bool cmp4(Student a,Student b){
return a.A[0]>b.A[0];
}
int main(){
int m,n;
map<string, Student> mp;
cin>>m>>n;
for(int i=0;i<m;i++){
cin>>stu[i].id>>stu[i].C[0]>>stu[i].M[0]>>stu[i].E[0];
stu[i].A[0]=(stu[i].C[0]+stu[i].M[0]+stu[i].E[0])/3;
}
sort(stu,stu+m,cmp1);
for(int i=0;i<m;i++){
if(i==0){
stu[i].C[1]=i+1;
}else{
if(stu[i-1].C[0]==stu[i].C[0])
stu[i].C[1]=stu[i-1].C[1];
else
stu[i].C[1]=i+1;
}
}
sort(stu,stu+m,cmp2);
for(int i=0;i<m;i++){
if(i==0){
stu[i].M[1]=i+1;
}else{
if(stu[i-1].M[0]==stu[i].M[0])
stu[i].M[1]=stu[i-1].M[1];
else
stu[i].M[1]=i+1;
}
}
sort(stu,stu+m,cmp3);
for(int i=0;i<m;i++){
if(i==0){
stu[i].E[1]=i+1;
}else{
if(stu[i-1].E[0]==stu[i].E[0])
stu[i].E[1]=stu[i-1].E[1];
else
stu[i].E[1]=i+1;
}
}
sort(stu,stu+m,cmp4);
for(int i=0;i<m;i++){
if(i==0){
stu[i].A[1]=i+1;
}else{
if(stu[i-1].A[0]==stu[i].A[0])
stu[i].A[1]=stu[i-1].A[1];
else
stu[i].A[1]=i+1;
}
}
for(int i=0;i<m;i++){
mp[stu[i].id]=stu[i];
}
string temp;
string list[n];
for(int i=0;i<n;i++){
cin>>temp;
list[i]=temp;
}
for(int i=0;i<n;i++){
if(mp.count(list[i])==0){
cout<<"N/A"<<endl;
}else{
int min=m;
string out;
if(mp[list[i]].A[1]<min){
min = mp[list[i]].A[1];
out="A";
}
if(mp[list[i]].C[1]<min){
min = mp[list[i]].C[1];
out="C";
}
if(mp[list[i]].M[1]<min){
min = mp[list[i]].M[1];
out="M";
}
if(mp[list[i]].E[1]<min){
min = mp[list[i]].E[1];
out="E";
}
cout<<min<<" "<<out<<endl;
}
}
}
1012 The Best Rank (25分)
最新推荐文章于 2022-03-02 19:29:24 发布