女の子(25分)対1036ボーイズ(水)

ガールズVS 1036ボーイズ(25分)
 

今度は、すべての男子学生の最低グレードと女子学生、すべての最高グレードの違いを教えて求められます。

入力仕様:

各入力ファイルには、1つのテストケースが含まれています。各ケースは、正の整数含ま  続いてN、  学生情報のNラインを。各行は生徒のを含んで  name、  gender、  ID および  grade、スペースで区切ら  name や  ID スペースを入れずに10文字以内の文字列である、  gender のいずれかである  F (メス)または  M (オス)、および  grade それが保証され、0から100の間の整数であります全学年が異なっていること。

出力仕様:

各テストケースのために、3行に出力されます。最初の行は、最高級と女子学生の名前やIDを与え、2行目は、最も低いグレードと男子生徒のことを示します。第三のラインは差を与える  G 、R dはE F - G R DのE Mを学生のそのような種類は、出力不足している場合は   、対応するラインで、出力   の代わりに3行目を。AbsentNA

サンプル入力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
トピック分析:ソートの質問に直接書き込みにソート慎重STLへ
1  の#define _CRT_SECURE_NO_WARNINGS
 2の#include <climits>
 3の#include <iostreamの>
 4の#include <ベクトル>
 5の#include <キュー>
 6の#include <地図>
 7の#include <積層>
 8の#include <アルゴリズム>
 9の#include < 文字列 >
 10の#include <cmath>
 11  使って 名前空間はstdを、
12  構造体学生{
 13      名、性別、ID。
14      INT グレード。
15  }。
16  ブール値の比較(CONST学生&、constの学生&B)
 17  {
 18      リターン a.grade < b.grade。
19  }
 20  のint main()の
 21  {
 22      ベクター<学生> SM。
23      ベクトル<学生> SF。
24      int型N。
25      CIN >> N。
26      文字列の名前、性別、ID;
27      INT グレード。
28      のためにINTは iは= 0 ; I <N; I ++ 29      {
 30         CIN >>名>>性別>> ID >> グレード。
31          であれば(性別== " M " 32              SM.push_back({名前、性別、ID、グレード})。
33          
34              SF.push_back({名前、性別、ID、グレード})。
35      }
 36      ソート(SM.begin()、SM.end()、比較)。
37      ソート(SF.begin()、SF.end()、比較)。
38      であれば(SF.size()== 0 || SM.size()== 0 39      {
 40          であれば(SF.size()== 0 41          {
 42             裁判所未満<< " 不在" << てendl;
43              であれば(SM.size()== 0 44                  COUT << " 不在" << ENDL。
45              
46                  。coutの<<(* SM.begin())名<< "  "。<<(* SM.begin())ID << てendl;
47          }
 48          他の
49          {
 50              COUT <<(*(SF.end() - 1))。名<< "  " <<(*(SF。51              であれば(SM.size()== 0 52                  COUT << " 不在" << ENDL。
53          }
 54          COUT << " NA " 55      }
 56      他の
57      {
 58          COUT <<(*(SF.end() - 1))名<< "  " <<(*(SF.end() - 1))ID << ENDL。
59          coutの<<(* SM.begin())。名前<< "  " <<(* SM.begin())。ID << endl;
60         coutの<<(*(SF.end() - 1))グレード- (*。SM.begin())グレード。
61      }
 62 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/57one/p/12013668.html