Start: Jan, 08, 2019 19:01:00
2018年秋季学期程序设计基础(C语言)期末考试
End: Jan, 08, 2019 21:46:00
Time elapsed:
Time remaining:

Problem_ID: G
Result: Accepted
Time: 1264ms
Memory: 2228kB
In contest: 1258

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<math.h>	
struct student{
	char a[100];
	int x,y,z;
	int sum;
}get[10001],t;

int main (){
	int N,i,sum=0,m,k=0,j;
	double sum1=0,sum2=0,sum3=0;
	int T,ame;
	char a[100];
	scanf("%d",&N);
	for(i=0;i<N;i++){
		scanf("%s%d%d%d",get[i].a,&get[i].x,&get[i].y,&get[i].z);
		sum1+=get[i].x;sum2+=get[i].y;sum3+=get[i].z;
		get[i].sum=get[i].x+get[i].y+get[i].z;
	}
	scanf("%d",&T);
	for(i=0;i<T;i++){
		scanf("%d",&ame);
		if(ame==1){
			scanf("%s",a);
			k++;
			printf("Query #%d: 1 %s\n",k,a);
			for(j=0;j<N;j++){
				if(strcmp(a,get[j].a)==0){
					printf("%d %d %d %d\n",get[j].sum,get[j].x,get[j].y,get[j].z);
				}
			}
		}
		if(ame!=1){
			scanf("%d",&m);
			k++;
			printf("Query #%d: %d %d\n",k,ame,m);
			if(m==1)printf("%.2f\n",sum1/N);
			if(m==2)printf("%.2f\n",sum2/N);
			if(m==3)printf("%.2f\n",sum3/N);
		}
	}
	for(i=0;i<N;i++){
		for(j=i+1;j<N;j++){
			if(get[i].sum<get[j].sum){
				t=get[i];get[i]=get[j];get[j]=t;
			}
			if(get[i].sum==get[j].sum){
				if(get[i].x<get[j].x){
					t=get[i];get[i]=get[j];get[j]=t;
				}
				if(get[i].x==get[j].x){
					if(get[i].y<get[j].y){
						t=get[i];get[i]=get[j];get[j]=t;
					}
					if(get[i].y==get[j].y){
						if(get[i].z<get[j].z){
							t=get[i];get[i]=get[j];get[j]=t;
						}
						if(get[i].z==get[j].z){
							if(strcmp(get[i].a,get[j].a)>0){
								t=get[i];get[i]=get[j];get[j]=t;
							}
						}
					}
				}
			}
		}
	}
	for(i=0;i<N;i++){
		printf("%s %d %d %d %d\n",get[i].a,get[i].sum,get[i].x,get[i].y,get[i].z);
	}
}