乙級 1095 解碼PAT准考證 (25 分)

2021-09-09 01:59:58 字數 1568 閱讀 3539

pat 准考證號由 4 部分組成:

現給定一系列考生的准考證號和他們的成績,請你按照要求輸出各種統計資訊。

輸入首先在一行中給出兩個正整數 n(≤10​4​​)和 m(≤100),分別為考生人數和統計要求的個數。

接下來 n 行,每行給出乙個考生的准考證號和其分數(在區間 [0,100] 內的整數),其間以空格分隔。

考生資訊之後,再給出 m 行,每行給出乙個統計要求,格式為:型別 指令,其中

對每項統計要求,首先在一行中輸出case #: 要求,其中#是該項要求的編號,從 1 開始;要求即複製輸入給出的要求。隨後輸出相應的統計結果:

如果查詢結果為空,則輸出na

8 4

b123180908127 99

b102180908003 86

a112180318002 98

t107150310127 62

a107180908108 100

t123180908010 78

b112160918035 88

a107180908021 98

1 a2 107

3 180908

2 999

case 1: 1 a

a107180908108 100

a107180908021 98

a112180318002 98

case 2: 2 107

3 260

case 3: 3 180908

107 2

123 2

102 1

case 4: 2 999

na

定義乙個結構體,建立兩個結構體型別的vector,乙個用來儲存輸入的資料,另乙個儲存符合要求的資料

map為對映,map中鍵是唯一的,對於查詢問題,unordered_map會更加高效一些,因此遇到查詢問題,常會考慮一下用unordered_map

#include

using namespace std;

struct node ;

bool cmp(const node &a, const node &b)

int main() else if (num == 2)

}if (cnt != 0) printf("%d %d\n", cnt, sum);

} else if (num == 3) );

}sort(ans.begin(), ans.end(),cmp);

for (int j = 0; j < ans.size(); j++)

printf("%s %d\n", ans[j].t.c_str(), ans[j].value);

if (((num == 1 || num == 3) && ans.size() == 0) || (num == 2 && cnt == 0)) printf("na\n");

}return 0;

}

1095 解碼PAT准考證

1095 解碼pat准考證 25 分 pat 准考證號由 4 部分組成 現給定一系列考生的准考證號和他們的成績,請你按照要求輸出各種統計資訊。輸入首先在一行中給出兩個正整數 n 10 4 和 m 100 分別為考生人數和統計要求的個數。接下來 n 行,每行給出乙個考生的准考證號和其分數 在區間 0,...

1095 解碼PAT准考證

pat 准考證號由 4 部分組成 現給定一系列考生的准考證號和他們的成績,請你按照要求輸出各種統計資訊。輸入首先在一行中給出兩個正整數 n 10 4 和 m 100 分別為考生人數和統計要求的個數。接下來 n 行,每行給出乙個考生的准考證號和其分數 在區間 0,100 內的整數 其間以空格分隔。考生...

1095 解碼PAT准考證

pat 准考證號由 4 部分組成 現給定一系列考生的准考證號和他們的成績,請你按照要求輸出各種統計資訊。輸入首先在一行中給出兩個正整數 n 10 4 和 m 100 分別為考生人數和統計要求的個數。接下來 n 行,每行給出乙個考生的准考證號和其分數 在區間 0,100 內的整數 其間以空格分隔。考生...