PAT-A1012

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct people{
	char id[8];
	int c, cr;
	int m, mr;
	int e, er;
	int a, ar;
}peo[2010];
bool cmpa(people k, people b){
	return k.a>b.a;  //else	return strcmp(a.id,b.id)<0;
}
bool cmpc(people k, people b){
	return k.c>b.c;
}
bool cmpm(people k, people b){
	return k.m>b.m;
}
bool cmpe(people k, people b){
	return k.e>b.e;
}
int min(int a,int b,int c,int d){
	if(a<=b&&a<=c&&a<=d)return 1;
	if(b<=a&&b<=c&&b<=d)return 2;
	if(c<=b&&c<=a&&c<=d)return 3;
	if(d<=b&&d<=c&&d<=a)return 4;
}
char check[2010][8];
int main(){
int i, j, n, x, m, rank;
scanf("%d%d",&n,&m);    //输入n,m
for(i=0;i<n;i++){
	scanf("%s%d%d%d",peo[i].id,&peo[i].c,&peo[i].m,&peo[i].e); //输入具体数据
	peo[i].a=peo[i].c+peo[i].m+peo[i].e;
}
for(i=0;i<m;i++)scanf("%s",check[i]);

sort(peo,peo+n,cmpa);//开始排序a
peo[0].ar=1; rank=2;
for(i=1;i<n;i++){
	if(peo[i].a==peo[i-1].a)peo[i].ar=peo[i-1].ar;
	else peo[i].ar=rank;
	rank++;
}
sort(peo,peo+n,cmpc);//开始排序c
peo[0].cr=1; rank=2;
for(i=1;i<n;i++){
	if(peo[i].c==peo[i-1].c)peo[i].cr=peo[i-1].cr;
	else peo[i].cr=rank;
	rank++;
}
sort(peo,peo+n,cmpm);//开始排序m
peo[0].mr=1; rank=2;
for(i=1;i<n;i++){
	if(peo[i].m==peo[i-1].m)peo[i].mr=peo[i-1].mr;
	else peo[i].mr=rank;
	rank++;
}
sort(peo,peo+n,cmpe);//开始排序e
peo[0].er=1; rank=2;
for(i=1;i<n;i++){
	if(peo[i].e==peo[i-1].e)peo[i].er=peo[i-1].er;
	else peo[i].er=rank;
	rank++;
}

for(i=0;i<m;i++){//输出
	j=0;
	while(strcmp(peo[j].id,check[i])!=0&&j<n)j++;
	if(j==n)printf("N/A\n");
	else {x=min(peo[j].ar,peo[j].cr,peo[j].mr,peo[j].er);
	        if(x==1)printf("%d A\n",peo[j].ar);
        	if(x==2)printf("%d C\n",peo[j].cr);
        	if(x==3)printf("%d M\n",peo[j].mr);
	        if(x==4)printf("%d E\n",peo[j].er);
	}
}

return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值