Решение на Python
Шаг 1. Чтение строк файла и нумерация
f = open('9.txt')
for i, line in enumerate(f, start=1):
print(i, line)
break
📌 Результат: для каждой строки получаем её номер и содержимое (на примере первой строки).
Шаг 2. Преобразование строки в список чисел
f = open('9.txt')
for i, line in enumerate(f, start=1):
nums = list(map(int, line.split()))
print(i, nums)
break
📌 Результат: строка превращается в список целых чисел, например [3, 7, 10, 2, 6].
Шаг 3. Структура повторов: тройка, пара и два уникальных
f = open('9.txt')
for line in f:
nums = list(map(int, line.split()))
values = set(nums)
freqs = sorted(nums.count(x) for x in values)
print(nums, '→', freqs)
break
📌 Результат: в подходящей строке частоты [1, 1, 2, 3] — одно число трижды, другое дважды, остальные два различны.
Шаг 4. Максимум строки встречается ровно один раз
f = open('9.txt')
for line in f:
nums = list(map(int, line.split()))
values = set(nums)
freqs = sorted(nums.count(x) for x in values)
if freqs == [1, 1, 2, 3]:
mx = max(nums)
print(nums, 'max =', mx, 'раз =', nums.count(mx))
break
📌 Результат: второе условие эквивалентно тому, что max(nums) встречается ровно один раз (тогда максимум среди повторяющихся меньше максимума среди уникальных).
Шаг 5. Проверка условия и получение ответа
# Открываем файл 9.txt и задаём count.
f = open('9.txt')
count = 0
# Читаем строки и собираем частоты чисел.
for line in f:
nums = list(map(int, line.split()))
values = set(nums)
freqs = sorted(nums.count(x) for x in values)
# Нужны тройка, пара и два уникальных числа.
if freqs != [1, 1, 2, 3]:
continue
uniq = [x for x in values if nums.count(x) == 1]
rep = [x for x in values if nums.count(x) in (2, 3)]
if sum(uniq) / 2 <= min(rep):
continue
count += 1
# Выводим ответ.
print(count)
Перебираем все строки. Если оба условия выполнены, увеличиваем счётчик. В конце выводим количество подходящих строк.
📌 Ответ: 653.
Решение. Проверим схему «тройка + пара + два уникальных», затем сравним среднее неповторяющихся с минимальным повторяющимся.
В столбцах H–N — частоты чисел строки.
В O1 — признак схемы 3+2+1+1:
=ЕСЛИ(И(СЧЁТЕСЛИ(H1:N1;3)=3;СЧЁТЕСЛИ(H1:N1;2)=2;СЧЁТЕСЛИ(H1:N1;1)=2);1;0)
В P1 — среднее уникальных больше минимума среди повторов (через вспомогательные MIN/СРЗНАЧ по частотам).
В Q1 объединим оба признака и посчитаем строки с единицей.
Получим ответ — 653.