Разбор  9.PNG

Тип 9 № 63025

Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел.

Определите количество строк таблицы, для чисел которых одновременно выполнены все следующие условия:

— в строке есть повторяющиеся числа;

— максимальное число в строке не повторяется;

— сумма всех повторяющихся чисел в строке больше максимального числа этой строки. При подсчёте суммы повторяющихся чисел каждое число учитывается столько раз, сколько оно встречается.

В ответе запишите число  — количество строк, удовлетворяющих заданным условиям.

Untitled

Комментарии к коду решения:

  1. count = 0 - Инициализируем счетчик кол-ва строк.
  2. for s in open('9.txt'): - Через цикл for пробегаем по всем строкам из файла '9.txt'.
  3. M = sorted([int(x) for x in s.split()]) - Преобразуем строку в отсортированный список целых чисел.
  4. if len(M) != len(set(M)): - Проверка: если в списке есть повторяющиеся элементы.
  5. if M.count(M[-1]) == 1: - Проверка: если максимальный элемент встречается только один раз.
  6. copied = [x for x in M if M.count(x) > 1] - Формирование списка повторяющихся элементов.
  7. if sum(copied) > M[-1]: - Проверка: если сумма повторяющихся элементов больше максимального элемента.
  8. count += 1 - Если все вышеописанные условия верные, то увеличивает счетчик.
  9. print(count) - Вывод значения счетчика на экран.
count = 0
for s in open('9.txt'):
    M = sorted([int(x) for x in s.split()])
    if len(M) != len(set(M)):  # if M[-1] != M[-2]:
        if M.count(M[-1]) == 1:
            copied = [x for x in M if M.count(x) > 1]
            if sum(copied) > M[-1]:
                count += 1
print(count)

Untitled

Аналогичное решение без сортировки элементов (через функцию max)