Форум » Обработка числовых последовательностей » Задание 27 (задача 51) » Ответить

Задание 27 (задача 51)

dim18: Здравствуйте! В файле A сумма минимальных значений равна 60450, кол-во четных чисел равно 9, нечетных - 10. То есть, выполняется условие задачи - "чётность этой суммы НЕ совпадает с чётностью большинства выбранных чисел". Значит, первичная сумма минимальных значений является ответом, но в таблице ответ 62276. Это ошибка или я неправильно понимаю условие задачи? [pre2] a = open('27-51a.txt') b = a.readlines() c = [] for i in b: c.append(list(map(int, i[:-1].split()))) c = c[1:] e = [max(i) - min(i) for i in c] e.sort() diff_chet = [i for i in e if i%2 == 0] diff_nechet = [i for i in e if i%2 != 0] d = [min(i) for i in c] num_chet, num_nechet = 0, 0 for i in d: if i % 2 == 0: num_chet += 1 else: num_nechet += 1 print(sum(d)) print(num_chet,num_nechet) print(sum(d)%2) [/pre2]

Ответов - 4

Поляков: dim18 пишет: В файле A сумма минимальных значений равна 60450 Эта сумма равна 61785. Вы неверно читаете последнюю пару чисел из-за удаления последнего символа строки. В конце последней строки нет "\n".

dim18: Спасибо! Исправил алгоритм создания начального списка, все ок. В большинстве случаев приведенный алгоритм дает правильный результат. Разница в формате исходного файла?

Поляков: dim18 пишет: Разница в формате исходного файла? Не обрезайте последний символ. Int сработает и так. Или обрезайте с помощью метода rstrip().


dim18: Спасибо! Я изменил на такой алгоритм создания списка списков. [pre2] a = open('27-48a.txt') n = int(a.readline()) c = [] for i in range(n): c.append(list(map(int, a.readline().split()))) [/pre2]



полная версия страницы