時間限制:1 秒記憶體限制:32 兆
題目描述:按要求,給國家進行排名。
輸入:有多組資料。
第一行給出國家數n,要求排名的國家數m,國家號從0到n-1。
第二行開始的n行給定國家或地區的奧運金牌數,獎牌數,人口數(百萬)。
接下來一行給出m個國家號。
輸出:排序有4種方式: 金牌總數 獎牌總數 金牌人口比例 獎牌人口比例
對每個國家給出最佳排名排名方式 和 最終排名
格式為: 排名:排名方式
如果有相同的最終排名,則輸出排名方式最小的那種排名,對於排名方式,金牌總數 < 獎牌總數 < 金牌人口比例 < 獎牌人口比例
如果有並列排名的情況,即如果出現金牌總數為 100,90,90,80.則排名為1,2,2,4.
每組資料後加乙個空行。
樣例輸入:
4 44 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:31:12:1
1:21:1
1:1
2023年浙江大學計算機及軟體工程研究生機試真題
思路:對於選定的國家進行排序時,不用傳統排序方法,而是只統計每個國家的排名,不移動國家元素。
1 #include2 #include3 #include4 #include5using
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個國家號。輸出 排序...