NKOJ 7.7练习题A IP地址

问题描述

可以用一个网络地址和一个子网掩码描述一个子网(即连续的 IP 地址范围)。
其中子网掩码包含 32 个二进制位,前 32-n 位为 1,后 n 位为 0,网络地址的前 32-n 位任意,后 n 位为 0(0<=n<=32) 。 所有前 32-n 位和网络地址相同的 IP 都属于此网络。  

例如,网地址为 194.85.160.176(二进制为 11000010 01010101 10100000 10110000), 子网掩码为 255.255.255.248(二进制为 11111111 11111111 11111111 11111000),则该 子网的 IP 地址范围是 194.85.160.176~194.85.160.183。
现在输入一些网络地址,请你求出包含所有地址的最小的网络(即包含 IP 地址最少的网络)。 

输入格式

第一行为一个整数 m,
接下来的 m 行,每行一个 IP 地址,可能有多个相同的地址出现。

输出格式

输出两行,表示包含所有输入的 IP 地址的最小网络,第一行是网络地址,第二行是子网掩码。 

样例输入 1


194.85.160.177 
194.85.160.183 
194.85.160.178 

样例输出 1

194.85.160.176
255.255.255.248 

样例输入 2

38
13.147.33.202
13.196.52.141
13.226.34.79
13.206.21.190
13.203.40.180
13.170.55.224
13.130.70.7
13.219.16.38
13.145.103.143
13.186.75.26
13.169.20.47
13.205.56.65
13.179.58.117
13.183.60.208
13.217.44.90
13.187.94.141
13.136.106.67
13.158.17.198
13.133.119.142
13.167.36.93
13.143.28.155
13.171.67.196
13.217.29.58
13.160.112.219
13.145.18.83
13.241.29.106
13.213.26.5
13.147.113.169
13.243.97.63
13.214.78.189
13.148.75.140
13.225.53.222
13.255.19.136
13.162.61.184
13.211.70.254
13.213.23.196
13.140.41.231
13.240.107.124

样例输出 2

13.128.0.0
255.128.0.0

提示

对于 100%的数据,m<=1000 

【分析】

读入:scanf("%d.%d.%d.%d", &a[i][1], &a[i][2], &a[i][3], &a[i][4]);

【传送门】http://oi.nks.edu.cn/zh/Problem/Details?cid=462&tid=A

原文地址:https://www.cnblogs.com/Limbo-To-Heaven/p/11146457.html