시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB196662847133.216%

문제

네트워크에 연결되어 있는 컴퓨터들은 각각 하나의 IP 주소를 갖게 된다. 그리고 이러한 IP 주소를 갖는 컴퓨터들이 여러 개 모여서 하나의 IP 네트워크를 구성하게 된다. IP 네트워크는 ‘네트워크 주소’와 ‘네트워크 마스크’라는 두 개의 정보로 표현된다.

IP 주소는 네 개의 바이트로 구성되어 있으며, 각각을 10진수로 나타내고(앞에 0을 붙이지 않은 형태로) 사이에 점을 찍어 주소를 표현한다. 바이트이기 때문에 각각의 수는 0부터 255까지의 값을 갖게 된다. 네트워크 주소와 네트워크 마스크 역시 같은 형식으로 나타낸다.

IP 네트워크에 대해 올바르게 이해하기 위해서는 위와 같은 주소를 2진수로 이해하면 된다. 즉, 각각의 바이트를 8자리의 이진수로 나타내고, 이를 네 개 붙여놓은(앞에서부터) 32자리의 이진수를 생각해 보자. IP 네트워크에는 기본적으로 2m 개의 컴퓨터(혹은 IP 주소)가 할당될 수 있다. 이 경우의 네트워크 주소는 앞의 32-m 자리가 임의의 수(0 또는 1)로 구성되어 있고, 뒤의 m자리는 0으로 채워지게 된다. 네트워크 마스크는 앞의 32-m 자리가 1로 채워져 있고, 뒤의 m자리는 0으로 채워지게 된다. 이와 같은 IP 네트워크에는 앞의 32-m 자리가 네트워크 주소와 일치하는 모든 IP들이 포함되게 된다.

예를 들어 네트워크 주소가 194.85.160.176이고, 네트워크 마스크가 255.255.255.248인 경우를 생각해 보자. 이 경우, 이 네트워크에는 194.85.160.176부터 194.85.160.183까지의 8개의 IP 주소가 포함된다.

어떤 네트워크에 속해있는 IP 주소들이 주어졌을 때, 네트워크 주소와 네트워크 마스크를 구해내는 프로그램을 작성하시오. 답이 여러 개인 경우에는 가장 크기가 작은(포함되는 IP 주소가 가장 적은, 즉 m이 최소인) 네트워크를 구하도록 한다.

입력

첫째 줄에 정수 n(1 ≤ n ≤ 1,000)이 주어진다. 다음 n개의 줄에는 각 컴퓨터의 IP 주소가 주어진다.

출력

첫째 줄에 네트워크 주소를, 둘째 줄에 네트워크 마스크를 출력한다.

예제 입력 1

3
194.85.160.177
194.85.160.183
194.85.160.178

예제 출력 1

194.85.160.176
255.255.255.248
W3sicHJvYmxlbV9pZCI6IjIwNjQiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJJUCBcdWM4ZmNcdWMxOGMiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1YzVkMCBcdWM1ZjBcdWFjYjBcdWI0MThcdWM1YjQgXHVjNzg4XHViMjk0IFx1Y2VmNFx1ZDRlOFx1ZDEzMFx1YjRlNFx1Yzc0MCBcdWFjMDFcdWFjMDEgXHVkNTU4XHViMDk4XHVjNzU4IElQIFx1YzhmY1x1YzE4Y1x1Yjk3YyBcdWFjMTZcdWFjOGMgXHViNDFjXHViMmU0LiBcdWFkZjhcdWI5YWNcdWFjZTAgXHVjNzc0XHViN2VjXHVkNTVjIElQIFx1YzhmY1x1YzE4Y1x1Yjk3YyBcdWFjMTZcdWIyOTQgXHVjZWY0XHVkNGU4XHVkMTMwXHViNGU0XHVjNzc0IFx1YzVlY1x1YjdlYyBcdWFjMWMgXHViYWE4XHVjNWVjXHVjMTFjIFx1ZDU1OFx1YjA5OFx1Yzc1OCBJUCBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmNcdWI5N2MgXHVhZDZjXHVjMTMxXHVkNTU4XHVhYzhjIFx1YjQxY1x1YjJlNC4gSVAgXHViMTI0XHVkMmI4XHVjNmNjXHVkMDZjXHViMjk0ICZsc3F1bztcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmMgXHVjOGZjXHVjMThjJnJzcXVvO1x1YzY0MCAmbHNxdW87XHViMTI0XHVkMmI4XHVjNmNjXHVkMDZjIFx1YjljOFx1YzJhNFx1ZDA2YyZyc3F1bztcdWI3N2NcdWIyOTQgXHViNDUwIFx1YWMxY1x1Yzc1OCBcdWM4MTVcdWJjZjRcdWI4NWMgXHVkNDVjXHVkNjA0XHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5JUCBcdWM4ZmNcdWMxOGNcdWIyOTQgXHViMTI0IFx1YWMxY1x1Yzc1OCBcdWJjMTRcdWM3NzRcdWQyYjhcdWI4NWMgXHVhZDZjXHVjMTMxXHViNDE4XHVjNWI0IFx1Yzc4OFx1YzczY1x1YmE3MCwgXHVhYzAxXHVhYzAxXHVjNzQ0IDEwXHVjOWM0XHVjMjE4XHViODVjIFx1YjA5OFx1ZDBjMFx1YjBiNFx1YWNlMChcdWM1NWVcdWM1ZDAgMFx1Yzc0NCBcdWJkOTlcdWM3NzRcdWM5YzAgXHVjNTRhXHVjNzQwIFx1ZDYxNVx1ZDBkY1x1Yjg1YykgXHVjMGFjXHVjNzc0XHVjNWQwIFx1YzgxMFx1Yzc0NCBcdWNjMGRcdWM1YjQgXHVjOGZjXHVjMThjXHViOTdjIFx1ZDQ1Y1x1ZDYwNFx1ZDU1Y1x1YjJlNC4gXHViYzE0XHVjNzc0XHVkMmI4XHVjNzc0XHVhZTMwIFx1YjU0Y1x1YmIzOFx1YzVkMCBcdWFjMDFcdWFjMDFcdWM3NTggXHVjMjE4XHViMjk0IDBcdWJkODBcdWQxMzAgMjU1XHVhZTRjXHVjOWMwXHVjNzU4IFx1YWMxMlx1Yzc0NCBcdWFjMTZcdWFjOGMgXHViNDFjXHViMmU0LiBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmMgXHVjOGZjXHVjMThjXHVjNjQwIFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2YyBcdWI5YzhcdWMyYTRcdWQwNmMgXHVjNWVkXHVjMmRjIFx1YWMxOVx1Yzc0MCBcdWQ2MTVcdWMyZGRcdWM3M2NcdWI4NWMgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0LjxcL3A+XHJcblxyXG48cD5JUCBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmNcdWM1ZDAgXHViMzAwXHVkNTc0IFx1YzYyY1x1YmMxNFx1Yjk3NFx1YWM4YyBcdWM3NzRcdWQ1NzRcdWQ1NThcdWFlMzAgXHVjNzA0XHVkNTc0XHVjMTFjXHViMjk0IFx1YzcwNFx1YzY0MCBcdWFjMTlcdWM3NDAgXHVjOGZjXHVjMThjXHViOTdjIDJcdWM5YzRcdWMyMThcdWI4NWMgXHVjNzc0XHVkNTc0XHVkNTU4XHViYTc0IFx1YjQxY1x1YjJlNC4gXHVjOTg5LCBcdWFjMDFcdWFjMDFcdWM3NTggXHViYzE0XHVjNzc0XHVkMmI4XHViOTdjIDhcdWM3OTBcdWI5YWNcdWM3NTggXHVjNzc0XHVjOWM0XHVjMjE4XHViODVjIFx1YjA5OFx1ZDBjMFx1YjBiNFx1YWNlMCwgXHVjNzc0XHViOTdjIFx1YjEyNCBcdWFjMWMgXHViZDk5XHVjNWVjXHViMTkzXHVjNzQwKFx1YzU1ZVx1YzVkMFx1YzExY1x1YmQ4MFx1ZDEzMCkgMzJcdWM3OTBcdWI5YWNcdWM3NTggXHVjNzc0XHVjOWM0XHVjMjE4XHViOTdjIFx1YzBkZFx1YWMwMVx1ZDU3NCBcdWJjZjRcdWM3OTAuIElQIFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1YzVkMFx1YjI5NCBcdWFlMzBcdWJjZjhcdWM4MDFcdWM3M2NcdWI4NWMgMjxzdXA+bTxcL3N1cD4gXHVhYzFjXHVjNzU4IFx1Y2VmNFx1ZDRlOFx1ZDEzMChcdWQ2MzlcdWM3NDAgSVAgXHVjOGZjXHVjMThjKVx1YWMwMCBcdWQ1NjBcdWIyZjlcdWI0MjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHVjNzc0IFx1YWNiZFx1YzZiMFx1Yzc1OCBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmMgXHVjOGZjXHVjMThjXHViMjk0IFx1YzU1ZVx1Yzc1OCAzMi1tIFx1Yzc5MFx1YjlhY1x1YWMwMCBcdWM3ODRcdWM3NThcdWM3NTggXHVjMjE4KDAgXHViNjEwXHViMjk0IDEpXHViODVjIFx1YWQ2Y1x1YzEzMVx1YjQxOFx1YzViNCBcdWM3ODhcdWFjZTAsIFx1YjRhNFx1Yzc1OCBtXHVjNzkwXHViOWFjXHViMjk0IDBcdWM3M2NcdWI4NWMgXHVjYzQ0XHVjNmNjXHVjOWMwXHVhYzhjIFx1YjQxY1x1YjJlNC4gXHViMTI0XHVkMmI4XHVjNmNjXHVkMDZjIFx1YjljOFx1YzJhNFx1ZDA2Y1x1YjI5NCBcdWM1NWVcdWM3NTggMzItbSBcdWM3OTBcdWI5YWNcdWFjMDAgMVx1Yjg1YyBcdWNjNDRcdWM2Y2NcdWM4MzggXHVjNzg4XHVhY2UwLCBcdWI0YTRcdWM3NTggbVx1Yzc5MFx1YjlhY1x1YjI5NCAwXHVjNzNjXHViODVjIFx1Y2M0NFx1YzZjY1x1YzljMFx1YWM4YyBcdWI0MWNcdWIyZTQuIFx1Yzc3NFx1YzY0MCBcdWFjMTlcdWM3NDAgSVAgXHViMTI0XHVkMmI4XHVjNmNjXHVkMDZjXHVjNWQwXHViMjk0IFx1YzU1ZVx1Yzc1OCAzMi1tIFx1Yzc5MFx1YjlhY1x1YWMwMCBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmMgXHVjOGZjXHVjMThjXHVjNjQwIFx1Yzc3Y1x1Y2U1OFx1ZDU1OFx1YjI5NCBcdWJhYThcdWI0ZTAgSVBcdWI0ZTRcdWM3NzQgXHVkM2VjXHVkNTY4XHViNDE4XHVhYzhjIFx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNjA4XHViOTdjIFx1YjRlNFx1YzViNCBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmMgXHVjOGZjXHVjMThjXHVhYzAwIDE5NC44NS4xNjAuMTc2XHVjNzc0XHVhY2UwLCBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmMgXHViOWM4XHVjMmE0XHVkMDZjXHVhYzAwIDI1NS4yNTUuMjU1LjI0OFx1Yzc3OCBcdWFjYmRcdWM2YjBcdWI5N2MgXHVjMGRkXHVhYzAxXHVkNTc0IFx1YmNmNFx1Yzc5MC4gXHVjNzc0IFx1YWNiZFx1YzZiMCwgXHVjNzc0IFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2Y1x1YzVkMFx1YjI5NCAxOTQuODUuMTYwLjE3Nlx1YmQ4MFx1ZDEzMCAxOTQuODUuMTYwLjE4M1x1YWU0Y1x1YzljMFx1Yzc1OCA4XHVhYzFjXHVjNzU4IElQIFx1YzhmY1x1YzE4Y1x1YWMwMCBcdWQzZWNcdWQ1NjhcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzViNFx1YjVhNCBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmNcdWM1ZDAgXHVjMThkXHVkNTc0XHVjNzg4XHViMjk0IElQIFx1YzhmY1x1YzE4Y1x1YjRlNFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWIxMjRcdWQyYjhcdWM2Y2NcdWQwNmMgXHVjOGZjXHVjMThjXHVjNjQwIFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2YyBcdWI5YzhcdWMyYTRcdWQwNmNcdWI5N2MgXHVhZDZjXHVkNTc0XHViMGI0XHViMjk0IFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOFx1Yzc0NCBcdWM3OTFcdWMxMzFcdWQ1NThcdWMyZGNcdWM2MjQuIFx1YjJmNVx1Yzc3NCBcdWM1ZWNcdWI3ZWMgXHVhYzFjXHVjNzc4IFx1YWNiZFx1YzZiMFx1YzVkMFx1YjI5NCBcdWFjMDBcdWM3YTUgXHVkMDZjXHVhZTMwXHVhYzAwIFx1Yzc5MVx1Yzc0MChcdWQzZWNcdWQ1NjhcdWI0MThcdWIyOTQgSVAgXHVjOGZjXHVjMThjXHVhYzAwIFx1YWMwMFx1YzdhNSBcdWM4MDFcdWM3NDAsIFx1Yzk4OSBtXHVjNzc0IFx1Y2Q1Y1x1YzE4Y1x1Yzc3OCkgXHViMTI0XHVkMmI4XHVjNmNjXHVkMDZjXHViOTdjIFx1YWQ2Y1x1ZDU1OFx1YjNjNFx1Yjg1ZCBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YzgxNVx1YzIxOCBuKDEgJmxlOyBuICZsZTsgMSwwMDApXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHViMmU0XHVjNzRjIG5cdWFjMWNcdWM3NTggXHVjOTA0XHVjNWQwXHViMjk0IFx1YWMwMSBcdWNlZjRcdWQ0ZThcdWQxMzBcdWM3NTggSVAgXHVjOGZjXHVjMThjXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YjEyNFx1ZDJiOFx1YzZjY1x1ZDA2YyBcdWM4ZmNcdWMxOGNcdWI5N2MsIFx1YjQ1OFx1YzlmOCBcdWM5MDRcdWM1ZDAgXHViMTI0XHVkMmI4XHVjNmNjXHVkMDZjIFx1YjljOFx1YzJhNFx1ZDA2Y1x1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMjA2NCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IklQIE5ldHdvcmtzIiwiZGVzY3JpcHRpb24iOiI8cD5BbGV4IGlzIGFkbWluaXN0cmF0b3Igb2YgSVAgbmV0d29ya3MuIEhpcyBjbGllbnRzIGhhdmUgYSBidW5jaCBvZiBpbmRpdmlkdWFsIElQIGFkZHJlc3NlcyBhbmQgaGUgZGVjaWRlZCB0byBncm91cCBhbGwgdGhvc2UgSVAgYWRkcmVzc2VzIGludG8gdGhlIHNtYWxsZXN0IHBvc3NpYmxlIElQIG5ldHdvcmsuPFwvcD5cclxuXHJcbjxwPkVhY2ggSVAgYWRkcmVzcyBpcyBhIDQtYnl0ZSBudW1iZXIgdGhhdCBpcyB3cml0dGVuIGJ5dGUtYnktYnl0ZSBpbiBhIGRlY2ltYWwgZG90LXNlcGFyYXRlZCBub3RhdGlvbiAmbGRxdW87Ynl0ZTAuYnl0ZTEuYnl0ZTIuYnl0ZTMmcmRxdW87IChxdW90ZXMgYXJlIGFkZGVkIGZvciBjbGFyaXR5KS4gRWFjaCBieXRlIGlzIHdyaXR0ZW4gYXMgYSBkZWNpbWFsIG51bWJlciBmcm9tIDAgdG8gMjU1IChpbmNsdXNpdmUpIHdpdGhvdXQgZXh0cmEgbGVhZGluZyB6ZXJvZXMuPFwvcD5cclxuXHJcbjxwPklQIG5ldHdvcmsgaXMgZGVzY3JpYmVkIGJ5IHR3byA0LWJ5dGUgbnVtYmVycyAmbWRhc2g7IG5ldHdvcmsgYWRkcmVzcyBhbmQgbmV0d29yayBtYXNrLiBCb3RoIG5ldHdvcmsgYWRkcmVzcyBhbmQgbmV0d29yayBtYXNrIGFyZSB3cml0dGVuIGluIHRoZSBzYW1lIG5vdGF0aW9uIGFzIElQIGFkZHJlc3Nlcy48XC9wPlxyXG5cclxuPHA+SW4gb3JkZXIgdG8gdW5kZXJzdGFuZCB0aGUgbWVhbmluZyBvZiBuZXR3b3JrIGFkZHJlc3MgYW5kIG5ldHdvcmsgbWFzayB5b3UgaGF2ZSB0byBjb25zaWRlciB0aGVpciBiaW5hcnkgcmVwcmVzZW50YXRpb24uIEJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiBJUCBhZGRyZXNzLCBuZXR3b3JrIGFkZHJlc3MsIGFuZCBuZXR3b3JrIG1hc2sgY29uc2lzdHMgb2YgMzIgYml0czogOCBiaXRzIGZvciBieXRlMCAobW9zdCBzaWduaWZpY2FudCB0byBsZWFzdCBzaWduaWZpY2FudCksIGZvbGxvd2VkIGJ5IDggYml0cyBmb3IgYnl0ZTEsIGZvbGxvd2VkIGJ5IDggYml0cyBmb3IgYnl0ZTIsIGFuZCBmb2xsb3dlZCBieSA4IGJpdHMgZm9yIGJ5dGUzLjxcL3A+XHJcblxyXG48cD5JUCBuZXR3b3JrIGNvbnRhaW5zIGEgcmFuZ2Ugb2YgMm4gSVAgYWRkcmVzc2VzIHdoZXJlIDAgJmxlOyBuICZsZTsgMzIuIE5ldHdvcmsgbWFzayBhbHdheXMgaGFzIDMyICZtaW51czsgbiBmaXJzdCBiaXRzIHNldCB0byBvbmUsIGFuZCBuIGxhc3QgYml0cyBzZXQgdG8gemVybyBpbiBpdHMgYmluYXJ5IHJlcHJlc2VudGF0aW9uLiBOZXR3b3JrIGFkZHJlc3MgaGFzIGFyYml0cmFyeSAzMiAmbWludXM7IG4gZmlyc3QgYml0cywgYW5kIG4gbGFzdCBiaXRzIHNldCB0byB6ZXJvIGluIGl0cyBiaW5hcnkgcmVwcmVzZW50YXRpb24uIElQIG5ldHdvcmsgY29udGFpbnMgYWxsIElQIGFkZHJlc3NlcyB3aG9zZSAzMiAmbWludXM7IG4gZmlyc3QgYml0cyBhcmUgZXF1YWwgdG8gMzIgJm1pbnVzOyBuIGZpcnN0IGJpdHMgb2YgbmV0d29yayBhZGRyZXNzIHdpdGggYXJiaXRyYXJ5IG4gbGFzdCBiaXRzLiBXZSBzYXkgdGhhdCBvbmUgSVAgbmV0d29yayBpcyBzbWFsbGVyIHRoYW4gdGhlIG90aGVyIElQIG5ldHdvcmsgaWYgaXQgY29udGFpbnMgZmV3ZXIgSVAgYWRkcmVzc2VzLjxcL3A+XHJcblxyXG48cD5Gb3IgZXhhbXBsZSwgSVAgbmV0d29yayB3aXRoIG5ldHdvcmsgYWRkcmVzcyAxOTQuODUuMTYwLjE3NiBhbmQgbmV0d29yayBtYXNrIDI1NS4yNTUuMjU1LjI0OCBjb250YWlucyA4IElQIGFkZHJlc3NlcyBmcm9tIDE5NC44NS4xNjAuMTc2IHRvIDE5NC44NS4xNjAuMTgzIChpbmNsdXNpdmUpLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgb2YgdGhlIGlucHV0IGZpbGUgY29udGFpbnMgYSBzaW5nbGUgaW50ZWdlciBudW1iZXIgbSAoMSAmbGU7IG0gJmxlOyAxMDAwKS4gVGhlIGZvbGxvd2luZyBtIGxpbmVzIGNvbnRhaW4gSVAgYWRkcmVzc2VzLCBvbmUgYWRkcmVzcyBvbiBhIGxpbmUuIEVhY2ggSVAgYWRkcmVzcyBtYXkgYXBwZWFyIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBpbnB1dCBmaWxlLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPldyaXRlIHRvIHRoZSBvdXRwdXQgZmlsZSB0d28gbGluZXMgdGhhdCBkZXNjcmliZSB0aGUgc21hbGxlc3QgcG9zc2libGUgSVAgbmV0d29yayB0aGF0IGNvbnRhaW5zIGFsbCBJUCBhZGRyZXNzZXMgZnJvbSB0aGUgaW5wdXQgZmlsZS4gV3JpdGUgbmV0d29yayBhZGRyZXNzIG9uIHRoZSBmaXJzdCBsaW5lIGFuZCBuZXR3b3JrIG1hc2sgb24gdGhlIHNlY29uZCBsaW5lLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=

출처

ICPC > Regionals > Northern Eurasia > Northern Eurasia Finals > NEERC 2005 I번

  • 데이터를 추가한 사람: sait2000