7 41 PAT排名彙總 25分

2021-10-09 13:17:29 字數 1773 閱讀 2644

每次考試會在若干個不同的考點同時舉行,每個考點用區域網,產生本考點的成績。考試結束後,各個考點的成績將即刻彙總成一張總的排名表。

現在就請你寫乙個程式自動歸併各個考點的成績並生成總排名表。

輸入格式:

輸入的第一行給出乙個正整數n(≤100),代表考點總數。隨後給出n個考點的成績,格式為:首先一行給出正整數k(≤300),代表該考點的考生總數;隨後k行,每行給出1個考生的資訊,包括考號(由13位整數字組成)和得分(為[0,100]區間內的整數),中間用空格分隔。

輸出格式:

首先在第一行裡輸出考生總數。隨後輸出彙總的排名表,每個考生的資訊佔一行,順序為:考號、最終排名、考點編號、在該考點的排名。其中考點按輸入給出的順序從1到n編號。考生的輸出須按最終排名的非遞減順序輸出,獲得相同分數的考生應有相同名次,並按考號的遞增順序輸出。

輸入樣例:

2

51234567890001

951234567890005

1001234567890003

951234567890002

771234567890004854

1234567890013

651234567890011

251234567890014

1001234567890012

85

輸出樣例:

9

123456789000511

1123456789001412

1123456789000131

2123456789000331

2123456789000451

4123456789001252

2123456789000271

5123456789001382

3123456789001192

4

思路:按照分數排序(按分數排序要比直接用結構體排序簡單一些),用rank1,rank2標記總排名,用rank3,rank4標記各考場排名

#include

#include

#include

using

namespace std;

struct stu };

map<

int, set>mp;

int n, k, score, rank1 =

1, rank2 =

1, rank3[

101]

, rank4[

101]

, sum =0;

intmain()

);}}

cout << sum << endl;

fill

(rank3, rank3 +

101,1)

,fill

(rank4, rank4 +

101,1)

;for

(auto it = mp.

rbegin()

; it != mp.

rend()

;++it)

rank1 = rank2;

//更新總排名

copy

(begin

(rank4)

,end

(rank4)

,begin

(rank3));

//更新考場排名

}}

7 41 PAT排名彙總(25 分)

每次考試會在若干個不同的考點同時舉行,每個考點用區域網,產生本考點的成績。考試結束後,各個考點的成績將即刻彙總成一張總的排名表。現在就請你寫乙個程式自動歸併各個考點的成績並生成總排名表。輸入的第一行給出乙個正整數n 100 代表考點總數。隨後給出n個考點的成績,格式為 首先一行給出正整數k 300 ...

7 41 PAT排名彙總

7 41 pat排名彙總 25 分 每次考試會在若干個不同的考點同時舉行,每個考點用區域網,產生本考點的成績。考試結束後,各個考點的成績將即刻彙總成一張總的排名表。現在就請你寫乙個程式自動歸併各個考點的成績並生成總排名表。輸入的第一行給出乙個正整數n 100 代表考點總數。隨後給出n個考點的成績,格...

PAT排名彙總(25 分)

這個題目就是需要注意一下 注意排序方式,然後就可以直接暴力的方法 進行排名的時候選擇乙個好的方式來 每次考試會在若干個不同的考點同時舉行,每個考點用區域網,產生本考點的成績。考試結束後,各個考點的成績將即刻彙總成一張總的排名表。現在就請你寫乙個程式自動歸併各個考點的成績並生成總排名表。輸入的第一行給...