九度oj 1007 奧運排序問題

2022-08-02 12:51:12 字數 1809 閱讀 3729

時間限制:1 秒記憶體限制:32 兆

題目描述:按要求,給國家進行排名。

輸入:有多組資料。

第一行給出國家數n,要求排名的國家數m,國家號從0到n-1。

第二行開始的n行給定國家或地區的奧運金牌數,獎牌數,人口數(百萬)。

接下來一行給出m個國家號。

輸出:排序有4種方式: 金牌總數 獎牌總數 金牌人口比例 獎牌人口比例 

對每個國家給出最佳排名排名方式 和 最終排名

格式為: 排名:排名方式

如果有相同的最終排名,則輸出排名方式最小的那種排名,對於排名方式,金牌總數 < 獎牌總數 < 金牌人口比例 < 獎牌人口比例 

如果有並列排名的情況,即如果出現金牌總數為 100,90,90,80.則排名為1,2,2,4.

每組資料後加乙個空行。

樣例輸入:

4 4

4 8 1

6 6 2

4 8 2

2 12 4

0 1 2 3

4 28 10 1

8 11 2

8 12 3

8 13 4

0 3

樣例輸出:

1:3

1:12:1

1:21:1

1:1

2023年浙江大學計算機及軟體工程研究生機試真題

思路:對於選定的國家進行排序時,不用傳統排序方法,而是只統計每個國家的排名,不移動國家元素。

1 #include2 #include3 #include4 #include5

using

namespace

std;

6const

int maxn=1000;7

8struct

countrycountries[maxn],rank[maxn];

1920

intmain()

2131

32int

number;

33for(int i=0;i)

3441

42int

ncount;

4344

//按金牌總數排名

45for(int i=0;i)

4653 rank[i].frank=ncount;

54 rank[i].type=1;55

}56//printf("%d %d\n",rank[2].frank,rank[2].type);

5758

//按獎牌總數排名

59for(int i=0;i)

6067

if(ncount68 69}

7071

//按金牌均佔比排名

72for(int i=0;i)

7380

if(ncount81 82}

8384

//按獎牌均佔比排名

85for(int i=0;i)

8693

if(ncount94 95}

9697

//最後輸出結果

98for(int i=0;i)

99102 printf("\n"

);103

}104

return0;

105 }

九度oj 題目1007 奧運排序問題

題目描述 按要求,給國家進行排名。輸入 有多組資料。第一行給出國家數n,要求排名的國家數m,國家號從0到n 1。第二行開始的n行給定國家或地區的奧運金牌數,獎牌數,人口數 百萬 接下來一行給出m個國家號。輸出 排序有4種方式 金牌總數 獎牌總數 金牌人口比例 獎牌人口比例 對每個國家給出最佳排名排名...

題目1007 奧運排序問題

題目1007 奧運排序問題 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 3180 解決 669 題目描述 按要求,給國家進行排名。輸入 有多組資料。第一行給出國家數n,要求排名的國家數m,國家號從0到n 1。第二行開始的n行給定國家或地區的奧運金牌數,獎牌數,人口數 百萬 接下來一行...

題目1007 奧運排序問題

時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 9031 解決 1952 題目描述 按要求,給國家進行排名。輸入 有多組資料。第一行給出國家數n,要求排名的國家數m,國家號從0到n 1。第二行開始的n行給定國家或地區的奧運金牌數,獎牌數,人口數 百萬 接下來一行給出m個國家號。輸出 排序...