版本号
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
本题使用文件输入输出:输入文件名为 version.in,输出文件名为 version.out。
小 Z 维护着一个软件的 个历史版本。每个版本都有一个版本号,形如 1.10.2:由若干段非负整数组成,相邻两段之间用一个 . 隔开。
两个版本号按下面的规则比较大小:
- 从左到右逐段比较,每一段都按整数的数值比较(例如
1.10比1.9新,因为第二段 ); - 若某一段已经分出大小,后面的段不再比较;
- 若一方的段先用完了,就把它缺少的段都视为 (例如
2.0比1.9.9新;1.2和1.2.0视为同一个版本)。
现在请你把这 个版本号从旧到新排序后输出。
输入格式
输入文件名为 version.in。
第一行一个整数 ,表示版本个数。
接下来 行,每行一个字符串,表示一个版本号。保证任意两个版本号按上述规则比较都不相同。
输出格式
输出文件名为 version.out。
共 行,每行一个版本号,表示按从旧到新排好序的结果。版本号要原样输出(不要增删段,也不要改变数字的写法)。
样例 #1
样例输入 #1
5
1.10
1.9
2.0
1.9.3
1.2.11
样例输出 #1
1.2.11
1.9
1.9.3
1.10
2.0
样例解释
1.9 与 1.9.3 比较:前两段相同,1.9 缺第三段视为 ,,所以 1.9 更旧。
1.9.3 与 1.10 比较:第二段 ,所以 1.9.3 更旧。注意如果按字符串比较,"1.9.3" 会排在 "1.10" 后面,那是错的。
样例 #2
样例输入 #2
4
3
2.5.0.1
2.5.0.0.7
10.0
样例输出 #2
2.5.0.0.7
2.5.0.1
3
10.0
样例解释
2.5.0.0.7 与 2.5.0.1 比较:第四段 ,前者更旧。3 与 10.0 比较:第一段 。
提示
数据范围
- 对于 的数据:每个版本号恰好 段,且每一段都是一位数;
- 对于 的数据:所有版本号的段数都相同;
- 对于 的数据:,每个版本号有 段,每段是一个 的整数,不含多余的前导 ( 本身写作
0),任意两个版本号互不相同。