[[原文:http://acm.pku.edu.cn/JudgeOnline/problem?id=2799]]
----
''時間制限'':1000ミリ秒
''メモリ制限'':65536KB
&br;
IPネットワーク
*問題 [#lc13ffbb]
アレックスはIPネットワークの管理者である。彼のクライアントは個々のIPアドレスの集まりを持っており、彼はそれらのIPアドレスを最小のIPネットワークにまとめつことに決めた。
各IPアドレスは4バイトの数であり、ドットで区切られたバイトごとの十進表記の列 "byte0.byte1.byte2.byte3" である。各バイトは余計なゼロを含まない0以上255以下の十進数として表記される。
IPネットワークは2つの4バイト数、ネットワークアドレスとネットマスクで表現される。ネットワークアドレスとネットマスクはIPアドレスと同じ記法で表現される。
ネットワークアドレスとネットマスクの意味を理解するためには、それらの2進表記を考える必要がある。IPアドレス、ネットワークアドレス、ネットマスクの2進表記は32ビットからなる: 最初の8ビットがbyte0(最上位から最下位)、続いてbyte1、byte2、byte3と8ビットずつになっている。
IPネットワークは2&sup(){n};(0 <= n <= 32)個のIPアドレスを含む。ネットマスクの2進表記は常に最初の32-nビットが1であり、残りのnビットは0である。ネットワークアドレスの2進表記は最初の32-nビットは0か1であり、残りのnビットは0である。IPネットワークは、最初の32-nビットがネットワークアドレスの最初の32-nビットと一致するような全てのIPアドレスを含む。あるIPネットワークAの持つIPアドレスが他のあるIPネットワークBの持つIPアドレスの数より少ないとき、IPネットワークAはIPネットワークBより小さいとする。
例えば、ネットワークアドレス194.85.160.176とネットマスク255.255.255.248からなるIPネットワークは、194.85.160.176以上194.85.160.183以下の8つのIPアドレスを含む。
*入力 [#z8264a8f]
入力の最初の行は1つの整数m(1 <= m <= 1000)を含む。続くm行は1行に1個のIPアドレスを含む。同じIPアドレスが複数回出現することもありうる。
*出力 [#yb710f01]
与えられたIPアドレスを全て含む最小のIPネットワークを記述する2行を出力せよ。1行目にはネットワークアドレスを、2行目にはネットマスクを出力せよ。
*入力例 [#a14fb75f]
3
194.85.160.177
194.85.160.183
194.85.160.178
*出力例 [#k3213d23]
194.85.160.176
255.255.255.248
*出典 [#s91a47ab]
Northeastern Europe 2005