Sample Input 1:
3 Joe M Math990112 89 Mike M CS991301 100 Mary F EE990830 95Sample Output 1:
Mary EE990830 Joe Math990112 6Sample Input 2:
1 Jean M AA980920 60Sample Output 2:
Absent Jean AA980920 NA
#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
using namespace std;
struct STUDENT
{
string name;
char gender;
string id;
int grade;
};
int main()
{
vector<STUDENT> VMale;
vector<STUDENT> VFaMale;
int N;
cin>>N;
while(N--)
{
STUDENT stu;
cin>>stu.name>>stu.gender>>stu.id>>stu.grade;
if (stu.gender == 'M')
{
VMale.push_back(stu);
}
else
{
VFaMale.push_back(stu);
}
}
STUDENT highestFemale;
int highest = 0;
if (VFaMale.size() > 0)
{
vector<STUDENT>::iterator iterFemale = VFaMale.begin();
highestFemale = *iterFemale;
highest = (*iterFemale).grade;
iterFemale++;
while (iterFemale != VFaMale.end())
{
if ((*iterFemale).grade > highest)
{
highestFemale = *iterFemale;
highest = highestFemale.grade;
}
iterFemale++;
}
cout<<highestFemale.name<<" "<<highestFemale.id<<endl;
}
else
{
cout<<"Absent"<<endl;
}
STUDENT lowmale;
int lowest = 0;
if (VMale.size() > 0)
{
vector<STUDENT>::iterator iterFemale = VMale.begin();
lowmale = *iterFemale;
lowest = (*iterFemale).grade;
iterFemale++;
while (iterFemale != VMale.end())
{
if ((*iterFemale).grade < lowest)
{
lowmale = *iterFemale;
lowest = lowmale.grade;
}
iterFemale++;
}
cout<<lowmale.name<<" "<<lowmale.id<<endl;
}
else
{
cout<<"Absent"<<endl;
}
if (VMale.size() == 0 || VFaMale.size() == 0)
{
cout<<"NA";
}
else
{
cout<<highest - lowest;
}
return 0;
}