Решение:
Считаем строки из файла и для каждой строки проверяем оба условия задачи.
|
|
f = open('9.txt') k = 0 for line in f.readlines(): a = [int(x) for x in line.split()] a1 = [x for x in a if a.count(x) == 1] m = max(a) + min(a) if len(a1) == 5 and 2 * m > (sum(a) - m): k += 1 print(k) |
Разберём программу.
Строка
|
|
a = [int(x) for x in line.split()] |
преобразует очередную строку файла в список из пяти натуральных чисел.
Далее создаём список чисел, которые встречаются в строке ровно один раз:
|
|
a1 = [x for x in a if a.count(x) == 1] |
Если все пять чисел различны, то длина этого списка будет равна 5:
Затем находим сумму максимального и минимального чисел строки:
Сумма оставшихся трёх чисел равна:
По условию удвоенная сумма максимального и минимального чисел должна быть больше суммы оставшихся трёх чисел:
Если оба условия выполняются, увеличиваем счётчик:
После проверки всех строк программа выводит количество подходящих строк.