1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
#include <cstdio> #include <cstdlib> #include <cstring> #include <string> #include <algorithm> #include <vector> #include <queue> #include <cmath> using namespace std; #define pb push_back #define ll long long const int maxn = 1e5+5; const int INF = 1e9; const double eps = 1e-6;
struct { int id; int c; int m; int e; int a; int ranA,ranC,ranM,ranE; }; bool cmpA(const stu& a,const stu& b) { return a.a > b.a; } bool cmpC(const stu& a,const stu& b){ return a.c > b.c; } bool cmpM(const stu& a,const stu& b) { return a.m > b.m; } bool cmpE(const stu& a,const stu& b) { return a.e > b.e; }
vector<stu> v; char get(stu x) { int minn = min(x.ranE,min(x.ranM,min(x.ranA,x.ranC))); if (minn == x.ranA)return 'A'; else if (minn == x.ranC) return 'C'; else if (minn == x.ranM) return 'M'; else return 'E'; } int main() { #ifdef ONLIGE_JUDGE #else freopen("in.txt","r",stdin); #endif int n,m; scanf("%d %d",&n,&m); for (int i = 0; i < n; ++i) { stu st; scanf("%d %d %d %d",&st.id,&st.c,&st.m,&st.e); st.a = (st.c + st.m + st.e) / 3.0; v.pb(st); } sort(v.begin(),v.end(),cmpA); for (int i = 0; i < n; ++i) { if(i > 0 && v[i].a==v[i-1].a)v[i].ranA = v[i-1].ranA; else v[i].ranA = i; } sort(v.begin(),v.end(),cmpC); for (int i = 0; i < n; ++i) { if(i > 0 && v[i].c==v[i-1].c)v[i].ranC = v[i-1].ranC; else v[i].ranC = i; } sort(v.begin(),v.end(),cmpM); for (int i = 0; i < n; ++i) { if(i > 0 && v[i].m==v[i-1].m)v[i].ranM = v[i-1].ranM; else v[i].ranM = i; } sort(v.begin(),v.end(),cmpE); for (int i = 0; i < n; ++i) { if(i > 0 && v[i].e==v[i-1].e)v[i].ranE = v[i-1].ranE; else v[i].ranE = i; } for (int i = 0; i < m; ++i) { int s,j; scanf("%d",&s); for (j = 0; j < v.size(); ++j) { if (s == v[j].id) { break; } } if (j == v.size()) { printf("N/An"); } else { int minn = INF; minn = min(v[j].ranE,min(v[j].ranM,min(v[j].ranA,v[j].ranC))); printf("%d %cn",minn+1,get(v[j])); }
} return 0; }
|
近期评论