#include<bits/stdc++.h>
using namespace std;
struct student{
string code;
int c;
int m;
int e;
double a;
map<char , int >mp;
}Stu[100000];
bool cmp1(struct student s1 , struct student s2){
return s1.c > s2.c;
}
bool cmp2(struct student s1 , struct student s2){
return s1.m > s2.m;
}
bool cmp3(struct student s1 , struct student s2){
return s1.e > s2.e;
}
bool cmp4(struct student s1 , struct student s2){
return s1.a > s2.a;
}
int main(){
int n ,m;
cin>>n>>m;
for(int i = 0 ; i < n ; i++){
cin>>Stu[i].code>>Stu[i].c>>Stu[i].m>>Stu[i].e;
Stu[i].a = (double)(Stu[i].c + Stu[i].m + Stu[i].e)/3;
}
sort(Stu,Stu+n,cmp4);
Stu[0].mp['A'] = 1;
for(int i = 1 ; i < n ; i++){
Stu[i].mp['A'] = Stu[i-1].mp['A'];
if(Stu[i].a < Stu[i-1].a){
Stu[i].mp['A']= i+1;
}
}
sort(Stu,Stu+n,cmp1);
Stu[0].mp['C'] = 1;
for(int i = 1 ; i < n ; i++){
Stu[i].mp['C'] = Stu[i-1].mp['C'];
if(Stu[i].c < Stu[i-1].c){
Stu[i].mp['C']= i+1;
}
}
sort(Stu,Stu+n,cmp2);
Stu[0].mp['M'] = 1;
for(int i = 1 ; i < n ; i++){
Stu[i].mp['M'] = Stu[i-1].mp['M'];
if(Stu[i].m < Stu[i-1].m){
Stu[i].mp['M']= i+1;
}
}
sort(Stu,Stu+n,cmp3);
Stu[0].mp['E'] = 1;
for(int i = 1 ; i < n ; i++){
Stu[i].mp['E'] = Stu[i-1].mp['E'];
if(Stu[i].e < Stu[i-1].e){
Stu[i].mp['E'] = i+1;
}
}
map<char , int> priority;
priority['A'] = 4;
priority['C'] = 3;
priority['M'] = 2;
priority['E'] = 1;
map<string ,string> finalmp;
for(int i = 0 ; i < n ; i++){
int min = 100000;
char index;
map<char , int>::iterator preit = Stu[i].mp.begin();
for(map<char , int>::iterator it = Stu[i].mp.begin() ; it != Stu[i].mp.end() ; it++){
if(it ->second < min){
index = it->first;
min = it->second;
}else if(it ->second == min && priority[it->first]>=priority[index]){
index = it->first;
min = it->second;
}
preit = it;
}
finalmp[Stu[i].code] = to_string(min)+" "+index;
min = 100000;
}
for(int i = 0 ; i < m ; i++){
string code;
cin>>code;
map<string ,string>::iterator it = finalmp.find(code);
if(it!=finalmp.end()){
printf("%s",it->second.c_str());
}else{
printf("N/A");
}
if(i!=m-1)
printf("\n");
}
}
1012 The Best Rank (25 分)
最新推荐文章于 2024-10-02 18:07:13 发布