给定 NN 个学生的成绩信息,请你求出女生第一名与男生倒数第一名的分数差距。
输入格式
第一行输入整数 NN,表示学生数量。
接下来 NN 行,每行包含一个学生的姓名,性别,ID和成绩。其中姓名和ID是长度不超过 1010 且不包含空格的字符串。性别为 FF(女)或 MM(男)。成绩是一个范围在 [0,100][0,100] 的整数。保证所有学生的成绩互不相同。
输出格式
输出共三行。
第一行输出女生第一名的姓名和ID。
第二行输出男生倒数第一名的姓名和ID。
第三行输出女生第一名的成绩减去男生倒数第一名的成绩的差。
如果不存在某个性别的学生,则在对应行输出 Absent
。
在第三行输出 NA
。
数据范围
1≤N≤1011≤N≤101
输入样例1:
3
Joe M Math990112 89
Mike M CS991301 100
Mary F EE990830 95
输出样例1:
Mary EE990830
Joe Math990112
6
输入样例2:
1
Jean M AA980920 60
输出样例2:
Absent
Jean AA980920
NA
思路:
- 先输入女生,男生的信息,作为临时变量
- 初始化女生的分数为-1,男生的分数为101
- 当性别为女时,比较分数,更新数据;当性别为男时,比较分数,更新数据
- 当女生或男生的分数为初始值时,即没有该性别的输入,输出“Absent”;否则输出信息
- 当两个性别的输入都有时,输出分数差,否则输出“NA”。
#include <iostream> #include <string> using namespace std; int main(){ //女孩的信息 string girl_name,girl_id; int girl_score=-1; //男孩的信息 string boy_name,boy_id; int boy_score=101; int n; cin>>n; for(int i=0;i<n;i++){ string name,sex,id; int score; cin>>name>>sex>>id>>score; if(sex=="F"){ if(girl_score<score){ girl_name=name; girl_score=score; girl_id=id; } } else{ if(boy_score>score){ boy_name=name; boy_score=score; boy_id=id; } } } if(girl_score==-1) cout<<"Absent"<<endl; else cout<<girl_name<<' '<<girl_id<<endl; if(boy_score==101) cout<<"Absent"<<endl; else cout<<boy_name<<' '<<boy_id<<endl; if(girl_score==-1||boy_score==101) cout<<"NA"<<endl; else{ cout<<girl_score-boy_score<<endl; } }