1036 Boys vs Girls (25分)
Posted d-i-p
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1036 Boys vs Girls (25分)相关的知识,希望对你有一定的参考价值。
1. 题目
2. 思路
用vector<node> m
, vector<node> f
分别存放女性和男性,后排序比较
3. 注意点
无
4. 代码
#include<cstdio>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<string>
using namespace std;
struct stu{
string name;
string id;
int grade;
stu(char name[100], char id[100], int grade){
this->name = name;
this->id = id;
this->grade = grade;
}
};
bool cmpM(stu s1, stu s2){
return s1.grade < s2.grade;
}
bool cmpF(stu s1, stu s2){
return s1.grade > s2.grade;
}
int n;
int main(){
char name[50], sex[2], id[50];
int grade;
vector<stu> m;
vector<stu> f;
scanf("%d", &n);
for(int i=0;i<n;i++){
scanf("%s %s %s %d", name, sex, id, &grade);
if(string(sex) == "M"){
m.push_back(stu(name, id, grade));
}else{
f.push_back(stu(name, id, grade));
}
}
sort(f.begin(), f.end(), cmpF);
sort(m.begin(), m.end(), cmpM);
if(f.size() == 0){
printf("Absent
");
if(m.size() == 0){
printf("Absent
");
}else{
printf("%s %s
", m[0].name.c_str(), m[0].id.c_str());
}
printf("NA
");
}else{
printf("%s %s
", f[0].name.c_str(), f[0].id.c_str());
if(m.size() == 0){
printf("Absent
");
printf("NA
");
}else{
printf("%s %s
", m[0].name.c_str(), m[0].id.c_str());
printf("%d
", f[0].grade - m[0].grade);
}
}
}
以上是关于1036 Boys vs Girls (25分)的主要内容,如果未能解决你的问题,请参考以下文章
PAT甲级:1036 Boys vs Girls (25分)
PAT 甲级 1036 Boys vs Girls (25 分)(简单题)