|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.06.2013, 16:06 | #1 |
Новичок
Джуниор
Регистрация: 02.06.2013
Сообщений: 2
|
Работа с массивами (C++)
Перед министерством страны стоит задача: объединить все IP адреса, которые есть в стране, в наименьшую возможную сеть. Для этого работники переписали все IP адреса, которые только были в стране. Однако некоторые адреса были переписаны несколькими людьми, что усложняет вашу задачу.
IP адрес - это 4 числа, которые записаны через точку, в десятичной системе исчисления. Каждая составляющего IP адреса может принимать значение от 0 до 255. Лидирующие нули не допускаются. IP сеть описывается двумя составляющими: адресом сети и её маской. И адрес сети, и маска записывается по тем же правилам, что и IP адрес. Для того, чтобы понять, что из себя представляет адрес сети и ее маска, необходимо рассмотреть их бинарное представление. IP сеть содержит 2^n адресов, где (0≤n≤32), при этом маска подсети (в бинарном представлении) содержит 32-n лидирующих единиц и n нулей в конце. Адрес сети (в бинарном представлении) имеет 32-n произвольных бит в своем начале и n нулей в конце. IP сеть содержит все адреса, которые имеют тот же набор из 32-n бит в начале, что и адрес сети, и имеют n произвольных бит в конце. Говорят, что одна IP сеть меньше другой, если она содержит меньшее количество адресов. Требуется написать программу, которая находит минимально возможную IP сеть, которая содержит все IP адреса страны. Формат входных данных: первая строка содержит целое число N - количество IP адресов в списке (1≤n≤1000) Следующие N строк содержат записи об IP адресах (записи могут повторяться). Формат выходных данных: В первой строке вывести адрес наименьшей IP сети. Во второй строке вывести маску наименьшей IP сети. Пример входных и выходных данных: |
02.06.2013, 16:44 | #2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Один адрес соответствует подсети из этого адреса и маски -1.-1.-1.-1.
Для каждого нового адреса, если он влезает в уже имеющуюся подсеть, ничего делать не надо. Если не влезает, подсеть надо расширить. |
02.06.2013, 16:51 | #3 |
Новичок
Джуниор
Регистрация: 02.06.2013
Сообщений: 2
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с Массивами С++ | Ales_Korvin | Помощь студентам | 1 | 09.01.2012 20:00 |
Работа с массивами | Ovt | Помощь студентам | 0 | 03.12.2010 18:59 |
Работа с массивами | driver05 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 24.05.2010 17:27 |
работа с массивами | Sparky | Win Api | 2 | 24.02.2010 19:02 |