7 41 PAT排名彙總(25 分)

2021-08-21 06:30:17 字數 1879 閱讀 9054

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

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

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

輸入樣例:

2 5

1234567890001 95

1234567890005 100

1234567890003 95

1234567890002 77

1234567890004 85

4 1234567890013 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

分別對每個考點進行排序,插入序號,再總排,插入序號。

/*

提交時間 狀態 分數 題目 編譯器 耗時 使用者

2018/7/6 18:20:09 答案正確 25 7-41 c++ (g++) 165 ms 17204111

測試點 結果 耗時 記憶體

0 答案正確 3 ms 1920kb

1 答案正確 3 ms 1920kb

2 答案正確 3 ms 1920kb

3 答案正確 165 ms 2684kb

*/#include

#include

#include

using

namespace

std;

typedef

struct node

node;

int cmp(node a,node b)

sort(que+x,que+x+n,cmp);

for (int i=0;iif (i==0)

if (que[x+i].score==que[x+i-1].score)

que[x+i].place_rank=que[x+i-1].place_rank;

else

que[x+i].place_rank=i+1;

}x+=n;

}sort(que,que+x,cmp);

que[0].rank=1;

cout

goto q;

if (que[i].score==que[i-1].score)

que[i].rank=que[i-1].rank;

else

que[i].rank=i+1;

q:;cout

<" "

<" "

<" "

<}

}

7 41 PAT排名彙總 25分

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

7 41 PAT排名彙總

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

PAT排名彙總(25 分)

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