PAT(甲级)1012. The Best Rank (25)

来源:互联网 发布:十三交友平台 知乎 编辑:程序博客网 时间:2024/04/30 14:01

题目:https://www.patest.cn/contests/pat-a-practise/1012

代码:

#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;#define maxn 100005struct stu{int id;int score[4];}s[maxn];int Rank[100000000][4]={0};int now;bool cmp(stu a,stu b){return a.score[now]>b.score[now];}int main(){char str[]={'A','C','M','E'};int n,m;scanf("%d%d",&n,&m);for(int i=0;i<n;i++){scanf("%d%d%d%d",&s[i].id,&s[i].score[1],&s[i].score[2],&s[i].score[3]);s[i].score[0]=s[i].score[1]+s[i].score[2]+s[i].score[3];}for(now=0;now<4;now++){  sort(s,s+n,cmp);  Rank[s[0].id][now]=1;  for(int i=1;i<n;i++)  {  if(s[i].score[now]==s[i-1].score[now]){  Rank[s[i].id][now] =Rank[s[i-1].id][now];  }else{  Rank[s[i].id][now] =i+1;  }  }}int temp;for(int i=0;i<m;i++){  scanf("%d",&temp);  if(Rank[temp][0]==0){  printf("N/A\n");  }else{    int k=0;for(int j=0;j<4;j++){if(Rank[temp][j]<Rank[temp][k]){k=j;}}printf("%d %c\n",Rank[temp][k],str[k]);  }  }   system("pause");} 

0 0
原创粉丝点击