1012. The Best Rank (25)

来源:互联网 发布:ubuntu怎样打开终端 编辑:程序博客网 时间:2024/05/17 04:36


1012. The Best Rank (25)

#include <stdio.h>const char les[5]="ACME";class A{public:enum{grade_num=4};void run();private:struct student{int id;int grades[grade_num];// A C M Eint ranks[grade_num];// A C M E};int n,m;student *st;};void A::run(){int i,j,k,id,min,mini;scanf("%d%d",&n,&m);st=new student[n];for(i=0;i<n;i++){scanf("%d%d%d%d",&st[i].id,&st[i].grades[1],&st[i].grades[2],&st[i].grades[3]);st[i].grades[0]=(st[i].grades[1]+st[i].grades[2]+st[i].grades[3])/3;for(k=0;k<grade_num;k++) st[i].ranks[k]=1;}for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j) continue;for(k=0;k<grade_num;k++){if(st[j].grades[k]>st[i].grades[k]) st[i].ranks[k]++;}}}for(j=0;j<m;j++){scanf("%d",&id);for(i=0;i<n;i++){if(id==st[i].id){min=st[i].ranks[0];mini=0;for(k=1;k<grade_num;k++) {if(st[i].ranks[k]<min) {min=st[i].ranks[k];mini=k;}}break;}}if(i<n) printf("%d %c\n",min,les[mini]);else printf("N/A\n");}}int main(){//freopen("test.in","r",stdin);A *a=new A;a->run();return 0;}