Start: Jul, 05, 2019 08:40:00
2019年度暑期短学期达标测试
End: Jul, 05, 2019 11:40:00
Time elapsed:
Time remaining:

Problem_ID: K
Result: Accepted
Time: 69ms
Memory: 24616kB
Author: CT12812731281
In contest: 1281

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct {
	char num[10];
	int a;
	int b;
	int sum;
}student;

int cmp(const void *a,const void *b){
	if( ((*(student*)b).sum-(*(student*)a).sum)!=0){
		return (*(student*)b).sum-(*(student*)a).sum;
	}
	else if(((*(student*)b).a-(*(student*)a).a)!=0){
		return (*(student*)b).a-(*(student*)a).a;
	}
	else if(((*(student*)b).b-(*(student*)a).b)!=0){
		return (*(student*)b).b-(*(student*)a).b;
	}
	else
	return strcmp((*(student*)a).num,(*(student*)b).num);
}

int main(){
	int n,l,h;
	int num=0;
	int x=0,y=0,z=0,s=0;
	student stu[200000];
	student stu1[200000];
	student stu2[200000];
	student stu3[200000];
	student stu4[200000];
	scanf("%d %d %d",&n,&l,&h);
	for(int i=0;i<n;i++){
		scanf("%s %d %d",stu[i].num,&stu[i].a,&stu[i].b);
		stu[i].sum=stu[i].a+stu[i].b;
		if(stu[i].a>=h&&stu[i].b>=h){
			strcpy(stu1[x].num,stu[i].num);
			stu1[x].a=stu[i].a;
			stu1[x].b=stu[i].b;
			stu1[x].sum=stu[i].sum;
			num++;
			x++;
		}
		else if(stu[i].a>=h&&stu[i].b>=l){
			strcpy(stu2[y].num,stu[i].num);
			stu2[y].a=stu[i].a;
			stu2[y].b=stu[i].b;
			stu2[y].sum=stu[i].sum;
			num++;
			y++;
		}
		else if(stu[i].a>=l&&stu[i].b>=l&&stu[i].a>=stu[i].b){
			strcpy(stu3[z].num,stu[i].num);
			stu3[z].a=stu[i].a;
			stu3[z].b=stu[i].b;
			stu3[z].sum=stu[i].sum;
			num++;
			z++;
		}
		else if(stu[i].a>=l&&stu[i].b>=l){
			strcpy(stu4[s].num,stu[i].num);
			stu4[s].a=stu[i].a;
			stu4[s].b=stu[i].b;
			stu4[s].sum=stu[i].sum;
			num++;
			s++;
		}
	}


	printf("%d\n",num);
	qsort(stu1,x,sizeof(student),cmp);
	qsort(stu2,y,sizeof(student),cmp);
	qsort(stu3,z,sizeof(student),cmp);
	qsort(stu4,s,sizeof(student),cmp);
	
	for(int i=0;i<x;i++){
		printf("%s %d %d\n",stu1[i].num,stu1[i].a,stu1[i].b);
	}
	for(int i=0;i<y;i++){
		printf("%s %d %d\n",stu2[i].num,stu2[i].a,stu2[i].b);
	}
	for(int i=0;i<z;i++){
		printf("%s %d %d\n",stu3[i].num,stu3[i].a,stu3[i].b);
	}
	for(int i=0;i<s;i++){
		printf("%s %d %d",stu4[i].num,stu4[i].a,stu4[i].b);
		if(i!=s-1)
		printf("\n");
	}
}