2 PAT排名彙總 25分

2021-10-12 19:22:42 字數 3130 閱讀 6635

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

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

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

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

2

51234567890001 95

1234567890005 100

1234567890003 95

1234567890002 77

1234567890004 85

41234567890013 65

1234567890011 25

1234567890014 100

1234567890012 85

9

1234567890005 1 1 1

1234567890014 1 2 1

1234567890001 3 1 2

1234567890003 3 1 2

1234567890004 5 1 4

1234567890012 5 2 2

1234567890002 7 1 5

1234567890013 8 2 3

1234567890011 9 2 4

加入了模板

仔細想想,排序就是排序,不需要管得到rank那個**。

好亂啊。

#include

#include

#include

using

namespace std;

struct node

;template

<

typename t>

void

merge

(vector

&arr,

int a,

int b,

int c,

bool

(*cmp)

(const t &n1,

const t &n2));

template

<

typename t>

void

mergesortrecursive

(vector

&arr,

int start,

int end,

bool

(*cmp)

(const t &n1,

const t &n2));

template

<

typename t>

void

sort

(vector

&arr,

bool

(*cmp)

(const t &n1,

const t &n2));

bool

cmp(

const node &n1,

const node &n2)

intmain()

//算算在其考點的成績

sort

(tmp, cmp)

;int rank =1;

tmp[0]

.rank = rank;

for(

int j =

1, len = tmp.

size()

; j < len;

++j)

}for

(auto x : tmp)

stu.

push_back

(x);

}sort

(stu, cmp)

;int rank =1;

stu[0]

.rank2 = rank;

for(

int j =

1, len = stu.

size()

; j < len;

++j)

}printf

("%d\n"

, stu.

size()

);for(

auto

&x : stu)

}template

<

typename t>

void

merge

(vector

&arr,

int a,

int b,

int c,

bool

(*cmp)

(const t &n1,

const t &n2)

)while

(i1 <= b)

tmp[i3++

]= arr[i1++];

while

(i2 <= c)

tmp[i3++

]= arr[i2++];

for(

int i =

0; i < i3;

++i)

arr[i + a]

= tmp[i];}

template

<

typename t>

void

mergesortrecursive

(vector

&arr,

int start,

int end,

bool

(*cmp)

(const t &n1,

const t &n2))}

template

<

typename t>

void

sort

(vector

&arr,

bool

(*cmp)

(const t &n1,

const t &n2)

)

PAT排名彙總(25 分)

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

PAT排名彙總 (25 分)

pat排名彙總 25 分 每次考試會在若干個不同的考點同時舉行,每個考點用區域網,產生本考點的成績。考試結束後,各個考點的成績將即刻彙總成一張總的排名表。現在就請你寫乙個程式自動歸併各個考點的成績並生成總排名表。include include include define fre freopen i...

7 41 PAT排名彙總(25 分)

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