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

27 задание № 4204

Zahar: Условие: Имеется набор данных, состоящий из пар натуральных чисел. Числа из каждой пары распределяются в две группы, так чтобы разность между суммами групп была максимальной и кратной 5. Какую максимальную разность можно получить? Входные данные. Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество пар N (N ≤ 12000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 500. Пример входного файла: 5 13 18 18 10 15 8 19 11 7 15 В этом наборе можно сформировать группы: (18+18+15+11+15) = 77 и (13+10+8+19+7) = 57. Разность 77-57=20 будет максимальной, кратной 5. Ответ: 20. В ответе укажите два числа: сначала искомое значение для файла А, затем для файла B. Моё решение: [pre2] with open("B.txt") as f: n = int(f.readline()) ss = [list(map(int, x.split())) for x in f] ma = 0 mi = 0 diff = 0 diffs = [] for i in range(n): row = ss[i ] ma += max(row) mi += min(row) if diff % 5 == 0: diffs.append([max(row) - min(row), max(row), min(row)]) diff = diff + (max(row) - min(row)) diffs.sort() ans = ma - mi if ans%5 != 0: j = 0 while ans%5 != 0: ans -= diffs[j][0] j += 1 print(ans) [/pre2] На файл B выводит 1365905, а не 1365890. Максимальная разность без учёта условия будет 1365906. В файле присутствует пара "355 354", разность которых 1. Если им поменять группы, тогда максимальная разность будет 1365905. Ошибка в моём коде или в самом задании?

Ответов - 1

Поляков: Zahar пишет: В файле присутствует пара "355 354", разность которых 1. Если им поменять группы, тогда максимальная разность будет 1365905 Это не так. Ошибка в моём коде или в самом задании? В вашем коде. Это задача 27.70 из основного сборника. На сайте есть несколько правильных решений.



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