64,646
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <string.h>
using namespace std;
const int MAX=2048;
int N,M;
int acme[MAX][7];
int m[MAX];
//互换
int Achange(int i,int j)
{
int t;
for(int k=0;k<7;++k)
{
t=acme[i][k];
acme[i][k]=acme[j][k];
acme[j][k]=t;
}
return 0;
}
//起泡排序
int Qqsort(int k,int low,int high)
{
if(low>=high)return 0;
int i=low;
while(i<high)
{
if(acme[i+1][k]>acme[i][k])
Achange(i,i+1);
++i;
}
Qqsort(k,low,i-1);
return 0;
}
int main()
{
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
scanf("%d %d",&N,&M);
int i=0,j=0,k=0,h=0;
for(;i<N;++i)
{
float t=0;
scanf("%d %d %d %d",&acme[i][0],&acme[i][3],&acme[i][2],&acme[i][1]);
t=(float)(acme[i][1]+acme[i][2]+acme[i][3])/3;
t+=0.5;
acme[i][4]=(int)t;
}
for(;j<M;++j)
scanf("%d",&m[j]);
Qqsort(4,0,N-1);
for(i=0;i<N;++i)
{
acme[i][5]=4;
if(acme[i][4]==acme[i-1][4]&&i>=1)
acme[i][6]=acme[i-1][6];
else
acme[i][6]=i+1;
}
for(j=3;j>=1;--j)
{
Qqsort(j,0,N-1);
int score=acme[0][j],scoreR=1;
for(i=0;i<N;++i)
{
if(acme[i][j]<score)++scoreR,score=acme[i][j];
if(scoreR<acme[i][6])
{
if(acme[i][j]==score)
acme[i][6]=scoreR;
else
{
acme[i][6]=i+1;
score=acme[i][j],scoreR=i+1;
}
acme[i][5]=j;
}
}
}
///输出
for(i=0;i<M;++i)
{
int ifprint=0;
for(j=0;j<N;++j)
{
if(m[i]==acme[j][0])
{
printf("%d ",acme[j][6]);
if(acme[j][5]==4)printf("A\n");
if(acme[j][5]==3)printf("C\n");
if(acme[j][5]==2)printf("M\n");
if(acme[j][5]==1)printf("E\n");
ifprint=1;
break;
}
}
if(ifprint==0)printf("N/A\n");
}
return 0;
}