【ACM】- PAT.A1036 Boys vs Girls 【水题】

这篇博客详细介绍了PAT比赛中的A1036题目,包括题目链接、分析和C++解题思路,适合ACM初学者参考。
摘要由CSDN通过智能技术生成
题目链接
题目分析

(略)

解题思路

(略)


AC程序(C++)
/**********************************
*@ID: 3stone
*@ACM: PAT.A1036 Boys vs Girls 
*@Time: 18/9/20
*@IDE: VScode 2018 + clang++ 
***********************************/
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>

using namespace std;
const int maxn = 10010;

int N;
struct student {
	char name[11];
	char ID[11];
	char gender;
	int grade;
}stu[maxn];

bool cmp(student s1, student s2) {
	if(s1.gender != s2.gender) {
		if(s1.gender == 'F') return true;
		else return false;
	} else  
		return s1.grade > s2.grade;	
}

int main() {

	while(scanf("%d", &N) != EOF) {
		//input info of stu
		for(int i = 0; i < N; i++) {
			scanf("%s %c %s %d", stu[i].name, &stu[i].gender, stu[i].ID, &stu[i].grade);
		}

		sort(stu, stu + N, cmp);

		if(stu[0].gender == 'F') printf("%s %s\n", stu[0].name, stu[0].ID);
		else printf("Absent\n");

		if(stu[N - 1].gender == 'M') printf("%s %s\n", stu[N - 1].name, stu[N - 1].ID);
		else printf("Absent\n");

		if(stu[0].gender == 'F' && stu[N - 1].gender == 'M')
			printf("%d\n", stu[0].grade - stu[N - 1].grade);
		else 
			printf("NA\n");


	}

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值