奥运排序问题

it2025-03-22  15

 奥运排序问题

题目描述

按要求,给国家进行排名。

输入

有多组数据。第一行给出国家数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 2 8 10 1 8 11 2 8 12 3 8 13 4 0 3

样例输出

1:3 1:1 2:1 1:2 1:1 1:1

提示

 

本题需要解决的是奥运会中各国家最有利的排名方式以及名次。只要进行五次排序即可。首先读入各国家信息,写好国家编号,计算和存储排名所需要的数据。然后按四种排名方式分别对需要排名的国家进行排名,并记录名次。最后使用国家编号对国家进行排名。这样就可以输出结果了。

 

 

1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int N,M; 6 while(cin>>N>>M) 7 { 8 int *GoldMedal = new int[N]; 9 int *SumMedal = new int[N]; 10 int PeopleSum; 11 double *GoldRate = new double[N]; 12 double *SumMedalRate = new double[N]; 13 for(int i=0;i<N;i++) 14 { 15 cin>>GoldMedal[i]>>SumMedal[i]>>PeopleSum; 16 GoldRate[i] = (double)GoldMedal[i]/(double)PeopleSum; 17 SumMedalRate[i] = (double)SumMedal[i]/(double)PeopleSum; 18 } 19 int *Number = new int[M]; 20 for(int i=0;i<M;i++) 21 { 22 cin>>Number[i]; 23 } 24 for(int i=0;i<M;i++){ 25 int Way = 0,Sequeue = 0; //最好的排名方式和最好的排名 26 int Sequeue_Way[5]; //每一种排名方式对应的名次 27 for(int j=0;j<5;j++) 28 Sequeue_Way[j] = 1; //先假设每种方式下的排名都是第一名 29 for(int j=0;j<M;j++){ 30 if(GoldMedal[Number[j]] > GoldMedal[Number[i]]) 31 { 32 Sequeue_Way[0]++; 33 } 34 if(SumMedal[Number[j]] > SumMedal[Number[i]]) 35 { 36 Sequeue_Way[1]++; 37 } 38 if(GoldRate[Number[j]] > GoldRate[Number[i]]) 39 { 40 Sequeue_Way[2]++; 41 } 42 if(SumMedalRate[Number[j]] > SumMedalRate[Number[i]]) 43 { 44 Sequeue_Way[3]++; 45 } 46 } 47 int Min = N+10; //求出最好的排名 48 for(int k=0;k<4;k++) 49 { 50 if(Sequeue_Way[k] < Min) 51 { 52 Way = k+1; 53 Sequeue = Sequeue_Way[k]; 54 Min = Sequeue_Way[k]; 55 } 56 } 57 cout<<Sequeue<<":"<<Way<<endl; 58 } 59 cout<<endl; 60 delete []GoldMedal; 61 delete []SumMedal; 62 delete []GoldRate; 63 delete []SumMedalRate; 64 delete []Number; 65 } 66 return 0; 67 } View Code

 

转载于:https://www.cnblogs.com/qing123tian/p/11107507.html

相关资源:数据结构—成绩单生成器
最新回复(0)