Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел.
Определите наибольший номер строки таблицы, для чисел которой выполнены оба условия:
- в строке одно число повторяется трижды, остальные четыре числа различны;
- удвоенная сумма максимального и минимального чисел строки не меньше суммы оставшихся пяти её чисел.
В ответе запишите только число.
Решение
В каждой строке семь чисел. Отбираем строки, где одно число встречается ровно 3 раза, остальные четыре различны, и удвоенная сумма максимума и минимума не меньше суммы пяти оставшихся. Среди подходящих берём строку с наибольшим номером.
# Таблица уже сохранена в файле 9.txt. Открываем файл и задаём best_i.
f = open('9.txt')
best_i = 0
# Читаем строки и оставляем схему «тройка + четыре уникальных».
for i, line in enumerate(f, start=1):
nums = list(map(int, line.split()))
values = set(nums)
if sorted(nums.count(x) for x in values) != [1, 1, 1, 1, 3]:
continue
# Проверяем второе условие: 2*(max+min) не меньше суммы пяти остальных.
mx, mn = max(nums), min(nums)
rest = sum(nums) - mx - mn
if 2 * (mx + mn) >= rest:
best_i = i
# Выводим ответ.
print(best_i)
Ответ: 9960.
Решение. Сначала проверим первое условие. В ячейку H1 введём формулу:
=СЧЁТЕСЛИ($A1:G1;A1)
и скопируем эту формулу во все оставшиеся ячейки диапазона H1:N10000.
В ячейку O1 введем формулу:
=ЕСЛИ(И(СЧЁТЕСЛИ(H1:N1;3)=3;СЧЁТЕСЛИ(H1:N1;1)=4);1;0)
и скопируем эту формулу во все оставшиеся ячейки диапазона O2:O10000. Если в строке одно число повторяется ровно три раза, а остальные 4 чисел различны, в ячейке O будет стоять 1, иначе 0.
Для второго условия в ячейку W1 введем формулу:
=2*(МАКС(A1:G1)+МИН(A1:G1))
и скопируем её вниз до строки 10000. В столбце W будет удвоенная сумма максимума и минимума строки.
В ячейку X1 введем формулу:
=СУММ(A1:G1)-МАКС(A1:G1)-МИН(A1:G1)
и скопируем её вниз до строки 10000. Здесь — сумма пяти оставшихся чисел.
Проверим строки, подходящие под оба условия. Для этого в ячейку Y1 введем формулу:
=ЕСЛИ(И(O1=1;W1>=X1);1;0)
и скопируем эту формулу во все оставшиеся ячейки диапазона Y2:Y10000.
Включим фильтр по столбцу Y, оставим значение только 1. Наибольший номер строки таблицы, для которой выполнены оба условия, даёт ответ.
Наибольший номер строки, для которой выполнены оба условия: 9960.
В ответе запишите только число — 9960.