Откройте файл электронной таблицы, содержащей в каждой строке пять натуральных чисел.
Определите количество строк таблицы, для которых выполнены оба условия:
- в строке одно число повторяется трижды, остальные числа различны;
- максимальное число строки не повторяется.
В ответе запишите только число.
Решение
В каждой строке пять чисел. Считаем строки, где одно число встречается ровно 3 раза, остальные различны, и максимум строки не повторяется.
# Открываем файл 9.txt и задаём count.
f = open('9.txt')
count = 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, 3]:
continue
# Максимум строки не должен повторяться.
mx = max(nums)
if nums.count(mx) == 1:
count += 1
# Выводим ответ.
print(count)
Ответ: 1022.
Решение. Сначала проверим первое условие. В ячейку F1 введём формулу:
=СЧЁТЕСЛИ($A1:E1;A1)
и скопируем её во все ячейки диапазона F1:J10000.
В ячейку K1 введём признак «одно число трижды, остальные 2 различны»:
=ЕСЛИ(И(СЧЁТЕСЛИ(F1:J1;3)=3;СЧЁТЕСЛИ(F1:J1;1)=2);1;0)
и скопируем формулу вниз до K10000.
Во втором условии максимальное число строки не должно повторяться. В ячейку L1:
=ЕСЛИ(СЧЁТЕСЛИ($A1:E1;МАКС(A1:E1))=1;1;0)
и скопируем вниз до строки 10000.
В ячейку M1 объединим оба условия:
=ЕСЛИ(И(K1=1;L1=1);1;0)
и скопируем вниз до M10000.
Включим фильтр по столбцу M, оставим только значение 1, и посчитаем количество оставшихся строк.
Получим ответ — 1022.