奧運排序問題 按要求,給國家進行排名

2021-09-25 04:12:00 字數 1469 閱讀 2313

題目描述:

按要求,給國家進行排名

輸入描述:

有多組資料。

第一行給出國家數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

**:

#include #include struct country ;

int main()

int x = 0;

while (1)

for(int i=0; ipctys[i].gdmedals) tmp[0]++; //如果國家j的金牌數大於國家i,則國家i的第一種排名下降一位

if(pctys[j].medals>pctys[i].medals) tmp[1]++; //如果國家j的獎牌數大於國家i,則國家i的第二種排名下降一位

if(pctys[j].peoples==0 || pctys[i].peoples==0)

if(pctys[i].peoples==0)

}else

}for(int k=0; k<4; k++){ //找出國家i排名最高的排序方式

if(tmp[k]注意點:

金牌數、獎牌數和人口數都可能為0。

當兩個國家人口數都為0時,如果她們的金牌數和獎牌數都不為0,則按第三第四種排名方式,她們排名相同。

當乙個國家人口數為0時,如果金牌數也為0,則她的第三種排名會比金牌數不為0的國家低。

當乙個國家人口數為0時,如果獎牌數也為0,則她的第四種排名會比獎牌數不為0的國家低。

奧運排序問題

時間限制 1 sec 記憶體限制 32 mb 按要求,給國家進行排名。有多組資料。第一行給出國家數n,要求排名的國家數m,國家號從0到n 1。第二行開始的n行給定國家或地區的奧運金牌數,獎牌數,人口數 百萬 接下來一行給出m個國家號。排序有4種方式 金牌總數 獎牌總數 金牌人口比例 獎牌人口比例 對...

奧運排序問題

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

奧運排序問題

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