#P4052. IP地址排序

IP地址排序

题目描述

AK机拿到了一批 IPv4 地址,需要把它们按照地址的数值大小从小到大排序后输出。

一个 IPv4 地址形如 a.b.c.da.b.c.d,由四段整数用英文句点分隔,它对应的数值为 a×2563+b×2562+c×256+da \times 256^3 + b \times 256^2 + c \times 256 + d

输入描述

第一行输入一个整数 n(1n5×104)n(1 \le n \le 5 \times 10^4),表示地址的个数。

接下来 nn 行,每行一个 IPv4 地址 a.b.c.d(0a,b,c,d255)a.b.c.d(0 \le a, b, c, d \le 255),每段均无前导零,保证 nn 个地址互不相同。

输出描述

输出 nn 行,每行一个 IPv4 地址,表示按数值从小到大排序后的结果。

样例1

输入

3
192.168.1.10
192.168.1.9
10.0.0.1

输出

10.0.0.1
192.168.1.9
192.168.1.10

样例解释

三个地址对应的数值分别为 3232235786323223578632322357853232235785167772161167772161,按数值升序即为输出顺序。

注意如果把地址当成普通字符串直接排序,192.168.1.10192.168.1.10 会排在 192.168.1.9192.168.1.9 前面,因为字符 11 小于字符 99,这个结果是错的。

样例2

输入

2
1.2.3.40
1.2.3.4

输出

1.2.3.4
1.2.3.40

样例解释

前三段完全相同,比较第四段,4<404 < 40,所以 1.2.3.41.2.3.4 在前。