奧運排序問題

2021-08-25 02:56:51 字數 1650 閱讀 3779

按要求,給國家進行排名。

輸入描述:

有多組資料。

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

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

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

輸出描述:

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

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

格式為: 排名:排名方式

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

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

每組資料後加乙個空行。

#include #include #include #define max 40

struct info;

struct info2;

struct info p[1010];

struct info t[1010];

struct info2 rank[1010];

int arr[1010];

void sort1(int n,struct info p)

}struct info temp=p[i];

p[i]=p[k];

p[k]=temp;

}int cnt=1;

rank[p[0].id].paiming=cnt;

rank[p[0].id].type=1;

for(i=1;icnt)

}} void sort2(int n,struct info p)

}struct info temp=p[i];

p[i]=p[k];

p[k]=temp;

}int cnt=1;

if(rank[p[0].id].paiming>cnt)

for(i=1;icnt)

}} void sort3(int n,struct info p)

}struct info temp=p[i];

p[i]=p[k];

p[k]=temp;

}int cnt=1;

if(rank[p[0].id].paiming>cnt)

for(i=1;icnt)

}} void sort4(int n,struct info p)

}struct info temp=p[i];

p[i]=p[k];

p[k]=temp;

}int cnt=1;

if(rank[p[0].id].paiming>cnt)

for(i=1;icnt)

}} void solve(int n,struct info p)

printf("\n");

}int main()

for(i=0;isort1(m,p);

sort2(m,p);

sort3(m,p);

sort4(m,p);

solve(m,p);

}return 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種方式 金牌總數 獎牌總數 金牌人口比例 獎牌人口比例 對每個國家給出最佳排名排名方式...