Откройте файл электронной таблицы, содержащей в каждой строке пять натуральных чисел.
Определите сумму всех чисел в строке таблицы с наибольшим номером, для чисел которой выполнены оба условия:
- в строке есть только одно число, которое повторяется дважды, остальные три числа различны;
- минимальное число строки не повторяется.
В ответе запишите только число.
Решение
В каждой строке пять чисел. Среди строк, где одно число встречается 2 раза, остальные три различны, и минимум не повторяется, берём строку с наибольшим номером и суммируем её числа.
# Таблица уже сохранена в файле 9.txt. Открываем файл и задаём best_sum.
f = open('9.txt')
best_sum = 0
# Читаем строки и оставляем схему «пара + три уникальных».
for line in f:
nums = list(map(int, line.split()))
values = set(nums)
if sorted(nums.count(x) for x in values) != [1, 1, 1, 2]:
continue
# Минимум строки не должен повторяться.
mn = min(nums)
if nums.count(mn) == 1:
best_sum = sum(nums)
# Выводим ответ.
print(best_sum)
Ответ: 842.
Решение. Сначала проверим первое условие. В ячейку F1 введём формулу:
=СЧЁТЕСЛИ($A1:E1;A1)
и скопируем её во все ячейки диапазона F1:J10000.
В ячейку K1 введём признак «одно число дважды, остальные три различны»:
=ЕСЛИ(И(СЧЁТЕСЛИ(F1:J1;2)=1;СЧЁТЕСЛИ(F1:J1;1)=3);1;0)
и скопируем формулу вниз до K10000.
Во втором условии минимальное число строки не должно повторяться. В ячейку L1:
=ЕСЛИ(СЧЁТЕСЛИ($A1:E1;МИН(A1:E1))=1;1;0)
и скопируем вниз до строки 10000.
В ячейку M1 объединим оба условия:
=ЕСЛИ(И(K1=1;L1=1);1;0)
и скопируем вниз до M10000.
Включим фильтр по столбцу M, оставим только значение 1.
Среди отфильтрованных строк найдём строку с наибольшим номером и посчитаем сумму чисел в столбцах A–E.
Получим ответ — 842.