分值 : 25 难度 : 水题 思路 : 排个序,性别第一关键字,成绩第二关键字. 坑点 : 没啥可坑的 评语 : 水题水题
123456789101112131415161718192021222324252627282930313233343536373839404142
#include <iostream>#include <algorithm>using namespace std ;#define L(i,N,K) for(int i = 0 ; i< N ; i+=K)typedef struct Node{ string name ; string gender ; string id ; int grade ;}Nodes;bool cmp(Node a , Node b ){ if(a.gender != b.gender ) return a.gender < b.gender ; return a.grade> b.grade ;}Nodes data[10001];int main() { int N ; cin>> N ; L(i,N,1) cin >> data[i].name >>data[i].gender>>data[i].id>>data[i].grade ; sort(data,data+N,cmp); int flag = 0 ; if(data[0].gender != "F" ) { cout << "Absent"<<endl ; flag =1 ; } else cout<<data[0].name <<" "<<data[0].id<<endl ; if(data[N-1].gender!="M") { cout << "Absent"<<endl ; flag =1 ; } else cout<<data[N-1].name <<" "<<data[N-1].id<<endl ; if(flag) cout <<"NA"<<endl ; else cout << data[0].grade - data[N-1].grade <<endl ;}