版权声明:// Copyright © 2018年 Coding18. All rights reserved. https://blog.csdn.net/Coding18/article/details/85997682
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,m;
struct student{
int id;
int grade[4];
}stu[2100];
int now = 0;
char cour[4] = {'A','C','M','E'};
int ranki[1000010][4] = {0};
bool cmp(struct student a, struct student b)
{
return a.grade[now] > b.grade[now];
}
int main()
{
scanf("%d %d",&n,&m);
int u;
for(int i= 0; i < n; i++){
scanf("%d",&stu[i].id);
scanf("%d %d %d",&stu[i].grade[1],&stu[i].grade[2],&stu[i].grade[3]);
stu[i].grade[0] = (stu[i].grade[1] + stu[i].grade[2] + stu[i].grade[3]) / 3;
}
for(now = 0; now < 4; now++)
{
sort(stu,stu+n,cmp);
ranki[stu[0].id][now] = 1;
for(int i = 1; i < n; i++){
if(stu[i].grade[now] == stu[i-1].grade[now])
ranki[stu[i].id][now] = ranki[stu[i-1].id][now];
else ranki[stu[i].id][now] = i + 1;
}
}
for(int i = 0; i < m; i++){
scanf("%d",&u);
if(ranki[u][0] == 0) printf("N/A\n");
else{
int k = -1 ,min = 100000;
for(int j = 0; j < 4; j++)
{
if(ranki[u][j] < min){
k = j;
min = ranki[u][j];
}
}
printf("%d %c\n",min,cour[k]);
}
}
return 0;
}