Задача к ЕГЭ по информатике на тему «обработка числовой информации в электронных таблицах» №18

Задание выполняется с использованием прилагаемых файлов.

Программист Саша купил таблицу с IP-адресами кодировки IPv4 из 20  случайных сетей, но, взглянув на неё, он сразу увидел, что некоторые IP-адреса не могут существовать, так как в одном байте не может содержаться число, большее чем 255  (так, например, адрес 255.51.15.81  может существовать, а вот 256.21.24.56  или 500.0.0.0  не могут). Вам требуется найти номера сетей, в которых было замечено больше всего ошибок. Для вашего доступа предоставлены последние 20  разных сетей, в каждой из которых дано по 100  IP-адресов. Откройте файл электронной таблицы, содержащей IP-адреса и номера сетей. Номера сетей даны на отрезке [B1;L1]  .

Требуется найти номера таких сетей, в которых было замечено больше всего ошибочных IP-адресов. В ответе запишите сумму искомых значений.

Перенесем все данные из таблицы в текстовый документ

f = open(’1.txt’)
# все строки первого столбца
# все строки второго столбца
# ...
n = 20 # всего сетей
m = 100 # всего адресов в сети
maxim = -1
ans = 0

for i in range(n): #всего n сетей
    count = 0 # счетчик неправильных сетей
    for j in range(m): # m ip адресов в каждой сети
        # разбиваем каждый ip адрес на числа
        a = [int(x) for x in f.readline().split(’.’)]
        for x in a: # проверяем каждое из чисел массива
            if x > 255:
                count += 1
                break
    if count > maxim: # сохраняем новый максимум ошибок
        maxim = count
        ans = i + 1 # индексация в питоне с 0, не забываем добавить 1
    elif count == maxim: # если вновь найдена сеть с максимальным количеством ошибок
        ans += i + 1
print(ans)

Ответ: 51
Оцените статью
Я решу все!