难受.jpg
#include <iostream>
#include <algorithm>
using namespace std;
class Node
{
public:
int id, best, sub, grades[4], rank[4];
Node()
{
id=0;best=0;sub=0;
for(int i=0; i<4; i++)
{
grades[i]=0;
rank[i]=0;
}
}
};
int main()
{
int n, m;
cin>>n>>m;
int *as = new int[n];
int *cs = new int[n];
int *ms = new int[n];
int *es = new int[n];
Node *s = new Node[n];
for(int i=0; i<n; i++)
{
int id, a, c, m, e;
Node nd;
cin>>id>>c>>m>>e;
a = (c+m+e)/3;
nd.id = id;
nd.grades[0] = a;
nd.grades[1] = c;
nd.grades[2] = m;
nd.grades[3] = e;
s[i] = nd;
as[i] = a;
cs[i] = c;
ms[i] = m;
es[i] = e;
}
sort(as, as+n);
sort(cs, cs+n);
sort(ms, ms+n);
sort(es, es+n);
for(int i=0; i<n; i++)
{
Node *nd = &s[i];
for(int j=n-1; j>=0; j--)
{
if(nd->grades[0]==as[j] && nd->rank[0]==0)
nd->rank[0]=n-j;
if(nd->grades[1]==cs[j] && nd->rank[1]==0)
nd->rank[1]=n-j;
if(nd->grades[2]==ms[j] && nd->rank[2]==0)
nd->rank[2]=n-j;
if(nd->grades[3]==es[j] && nd->rank[3]==0)
nd->rank[3]=n-j;
}
for(int j=0; j<4; j++)
{
if(nd->rank[j]<nd->best || nd->best==0)
{
nd->best = nd->rank[j];
nd->sub = j;
}
}
}
int *id = new int[m];
for(int i=0; i<m; i++)
cin>>id[i];
for(int i=0; i<m; i++)
{
bool flag = false;
int best, sub;
for(int j=0; j<n; j++)
{
if(s[j].id == id[i])
{
best = s[j].best;
sub = s[j].sub;
flag = true;
}
}
if(!flag)
cout<<"N/A"<<endl;
else
{
cout<<best<<" ";
if(sub == 0)
cout<<"A"<<endl;
else if(sub == 1)
cout<<"C"<<endl;
else if(sub == 2)
cout<<"M"<<endl;
else if(sub == 3)
cout<<"E"<<endl;
}
}
system("pause");
return 0;
}