奧運排行榜

2021-08-28 08:49:03 字數 1266 閱讀 2277

7-17 奧運排行榜 (25 分)

每年奧運會各大**都會公布乙個排行榜,但是細心的讀者發現,不同國家的排行榜略有不同。比如中國金牌總數列第一的時候,中國**就公布「金牌榜」;而美國的獎牌總數第一,於是美國**就公布「獎牌榜」。如果人口少的國家公布乙個「國民人均獎牌榜」,說不定非洲的國家會成為榜魁…… 現在就請你寫乙個程式,對每個前來諮詢的國家按照對其最有利的方式計算它的排名。

輸入的第一行給出兩個正整數n和m(≤224,因為世界上共有224個國家和地區),分別是參與排名的國家和地區的總個數、以及前來諮詢的國家的個數。為簡單起見,我們把國家從0 ~ n−1編號。之後有n行輸入,第i行給出編號為i−1的國家的金牌數、獎牌數、國民人口數(單位為百萬),數字均為[0,1000]區間內的整數,用空格分隔。最後面一行給出m個前來諮詢的國家的編號,用空格分隔。

在一行裡順序輸出前來諮詢的國家的排名:計算方式編號。其排名按照對該國家最有利的方式計算;計算方式編號為:金牌榜=1,獎牌榜=2,國民人均金牌榜=3,國民人均獎牌榜=4。輸出間以空格分隔,輸出結尾不能有多餘空格。

若某國在不同排名方式下有相同名次,則輸出編號最小的計算方式。

4 4

51 100 1000

36 110 300

6 14 32

5 18 40

0 1 2 3

1:1 1:2 1:3 1:4
#include using namespace std;

struct node

node;

vectorv;

bool cmp1(node n1,node n2)

bool cmp2(node n1,node n2)

bool c***(node n1,node n2)

bool cmp4(node n1,node n2)

bool cmp5(node n1,node n2)//按國家編號排名

sort(v.begin(),v.end(),cmp1);

v[0].rank1=1;

for(int i=1;i>k;

int min_=v[k].rank1;

int min_p=1;

if(min_>v[k].rank2)

if(min_>v[k].rank3)

if(min_>v[k].rank4)

if(i==0)

else

}return 0;

}

奧運排行榜

每年奧運會各大 都會公布乙個排行榜,但是細心的讀者發現,不同國家的排行榜略有不同。比如中國金牌總數列第一的時候,中國 就公布 金牌榜 而美國的獎牌總數第一,於是美國 就公布 獎牌榜 如果人口少的國家公布乙個 國民人均獎牌榜 說不定非洲的國家會成為榜魁 現在就請你寫乙個程式,對每個前來諮詢的國家按照對...

奧運排行榜

每年奧運會各大 都會公布乙個排行榜,但是細心的讀者發現,不同國家的排行榜略有不同。比如中國金牌總數列第一的時候,中國 就公布 金牌榜 而美國的獎牌總數第一,於是美國 就公布 獎牌榜 如果人口少的國家公布乙個 國民人均獎牌榜 說不定非洲的國家會成為榜魁 現在就請你寫乙個程式,對每個前來諮詢的國家按照對...

PTA 奧運排行榜

題目描述 每年奧運會各大 都會公布乙個排行榜,但是細心的讀者發現,不同國家的排行榜略有不同。比如中國金牌總數列第一的時候,中國 就公布 金牌榜 而美國的獎牌總數第一,於是美國 就公布 獎牌榜 如果人口少的國家公布乙個 國民人均獎牌榜 說不定非洲的國家會成為榜魁 現在就請你寫乙個程式,對每個前來諮詢的...