907.py

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите сумму чисел в строке с наибольшим номером, для которой выполнены оба условия: 1. в строке есть одно число, которое повторяется трижды, остальные четыре числа различны; 2. среднее арифметическое неповторяющихся чисел строки не больше повторяющегося числа. В ответе запишите только число.
"""
Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел.
Определите сумму чисел в строке с наибольшим номером, для которой выполнены оба условия:

    1. в строке есть одно число, которое повторяется трижды, остальные четыре числа различны;
    2. среднее арифметическое неповторяющихся чисел строки не больше повторяющегося числа.

В ответе запишите только число.
"""
max_row = 0
row_sum = 0
n = 0
for i in open('907'):
    n = n + 1
    # переводим строку в список из семи целых чисел
    a = [int(x) for x in i.split()]
    if len(a) != 7:
        continue
    # число, встречающееся ровно 3 раза, и четыре по одному разу
    rep3 = [x for x in set(a) if a.count(x) == 3]
    rep1 = [x for x in set(a) if a.count(x) == 1]
    if len(rep3) != 1 or len(rep1) != 4:
        continue
    # среднее неповторяющихся не больше повторяющегося
    if sum(rep1) / 4 <= rep3[0]:
        max_row = n
        row_sum = sum(a)
print(row_sum)

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

    1. в строке есть одно число, которое повторяется трижды, остальные четыре числа различны;
    2. среднее арифметическое неповторяющихся чисел строки не больше повторяющегося числа.

В ответе запишите только число.
"""
max_row = 0
row_sum = 0
n = 0
for i in open('907'):
    n = n + 1
    # переводим строку в список из семи целых чисел
    a = [int(x) for x in i.split()]
    if len(a) != 7:
        continue
    # число, встречающееся ровно 3 раза, и четыре по одному разу
    rep3 = [x for x in set(a) if a.count(x) == 3]
    rep1 = [x for x in set(a) if a.count(x) == 1]
    if len(rep3) != 1 or len(rep1) != 4:
        continue
    # среднее неповторяющихся не больше повторяющегося
    if sum(rep1) / 4 <= rep3[0]:
        max_row = n
        row_sum = sum(a)
print(row_sum)

"""
Ответ: 901
"""

Репозиторий на GitHub