Result: Accepted
Time: 31ms
Memory: 1524kB
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct
{
char num[10];
int gs;
int cx;
int xd;
int z;
}xx;
int cmp(const void * a,const void * b)
{
xx * pa=(xx *)a;
xx * pb=(xx *)b;
if(pa->z>pb->z)
return -1;
else if(pa->z<pb->z)
return 1;
else
{
if(pa->gs>pb->gs)
return -1;
else if(pa->gs<pb->gs)
return 1;
else
{
if(pa->cx>pb->cx)
return -1;
else if(pa->cx<pb->cx)
return 1;
else
{
if(pa->xd>pb->xd)
return -1;
else if(pa->xd<pb->xd)
return 1;
else
{
return strcmp(pa->num,pb->num);
}
}
}
}
}
int main()
{
xx stu[10000];
char y[10];
int n,q,f;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s %d %d %d",stu[i].num,&stu[i].gs,&stu[i].cx,&stu[i].xd);
stu[i].z=stu[i].gs+stu[i].cx+stu[i].xd;
}
scanf("%d",&q);
int k=0;
while(q--)
{
scanf("%d %s",&f,y);
printf("Query #%d: %d %s\n",++k,f,y);
if(f==1)
{
for(int i=0;i<n;i++)
{
if(strcmp(y,stu[i].num)==0)
{
printf("%d %d %d %d\n",stu[i].z,stu[i].gs,stu[i].cx,stu[i].xd);
break;
}
}
}
else
{
double s=0;
if(strcmp(y,"1")==0)
{
for(int i=0;i<n;i++)
{
s+=stu[i].gs;
}
}
else if(strcmp(y,"2")==0)
{
for(int i=0;i<n;i++)
{
s+=stu[i].cx;
}
}
else
{
for(int i=0;i<n;i++)
{
s+=stu[i].xd;
}
}
printf("%.2f\n",s*1.0/n);
}
}
qsort(stu,n,sizeof(xx),cmp);
for(int i=0;i<n;i++)
{
printf("%s %d %d %d %d\n",stu[i].num,stu[i].z,stu[i].gs,stu[i].cx,stu[i].xd);
}
return 0;
}