Автор | Сообщение |
|
Отправлено: 09.05.22 18:33. Заголовок: Задание 27 (задача 51)
Здравствуйте! В файле A сумма минимальных значений равна 60450, кол-во четных чисел равно 9, нечетных - 10. То есть, выполняется условие задачи - "чётность этой суммы НЕ совпадает с чётностью большинства выбранных чисел". Значит, первичная сумма минимальных значений является ответом, но в таблице ответ 62276. Это ошибка или я неправильно понимаю условие задачи? 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)
|
|
|
Ответов - 4
[только новые]
|
|
|
| Администратор
|
Сообщение: 3533
|
|
Отправлено: 12.05.22 20:08. Заголовок: dim18 пишет: В файле..
dim18 пишет: цитата: | В файле A сумма минимальных значений равна 60450 |
|
Эта сумма равна 61785. Вы неверно читаете последнюю пару чисел из-за удаления последнего символа строки. В конце последней строки нет "\n".
|
|
|
|
Отправлено: 12.05.22 21:11. Заголовок: Спасибо! Исправил ал..
Спасибо! Исправил алгоритм создания начального списка, все ок. В большинстве случаев приведенный алгоритм дает правильный результат. Разница в формате исходного файла?
|
|
|
|
| Администратор
|
Сообщение: 3536
|
|
Отправлено: 12.05.22 21:15. Заголовок: dim18 пишет: Разница..
dim18 пишет: цитата: | Разница в формате исходного файла? |
|
Не обрезайте последний символ. Int сработает и так. Или обрезайте с помощью метода rstrip().
|
|
|
|
Отправлено: 12.05.22 22:12. Заголовок: Спасибо! Я изменил н..
Спасибо! Я изменил на такой алгоритм создания списка списков. a = open('27-48a.txt') n = int(a.readline()) c = [] for i in range(n): c.append(list(map(int, a.readline().split())))
|
|
|
|