192. 华为OD-磁盘容量排序(100分)

难度 2
  • 标签:
  • 华为OD真题100分题型
题目描述
题解
题库

华为OD-磁盘容量排序(100分)

题目描述

磁盘的容量单位常用的有 M,G,T 这三个等级,
它们之间的换算关系为 1T=1024G1T = 1024G1G=1024M1G = 1024M
现在给定 nn 块磁盘的容量,请对它们按从小到大的顺序进行稳定排序。

例如给定 5 块磁盘的容量:1T,20M,3G,10G6T,3M12G9M,
排序后的结果为:20M,3G,3M12G9M,1T,10G6T。

注意单位可以重复出现,上述 3M12G9M 表示的容量即为 3M+12G+9M3M + 12G + 9M,和 12M12G12M12G 相等。

输入描述

输入第一行包含一个整数 nn2n1002 \leq n \leq 100),表示磁盘的个数。
接下来的 nn 行,每行一个字符串(长度大于 2,小于 30),表示磁盘的容量,由一个或多个格式为 mvmv 的子串组成,
其中 mm 表示容量大小,vv 表示容量单位,例如:20M,1T,30G,10G6T,3M12G9M。
磁盘容量 mm 的范围为 1 到 1024 的正整数,
容量单位 vv 的范围只包含题目中提到的 M,G,T 三种,换算关系如题目描述。

输出描述

输出 nn 行,表示 nn 块磁盘容量排序后的结果。

样例1

输入

3
1G
2G
1024M

输出

1G
1024M
2G

说明

1G1G1024M1024M 容量相等,稳定排序要求保留它们原来的相对位置,故 1G1G1024M1024M 之前。

样例2

输入

3
2G4M
3M2G
1T

输出

3M2G
2G4M
1T

说明

1T1T 的容量大于 2G4M2G4M2G4M2G4M 的容量大于 3M2G3M2G