Помогите найти ошибку в коде
ответ должен быть 373, у меня получается 517
Вот условие: Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:
— в строке только одно число повторяется ровно два раза, остальные числа различны;
— среднее арифметическое неповторяющихся чисел строки не больше суммы повторяющихся чисел.
В ответе запишите только число.
таблица - https://3.shkolkovo.online/st/7/o/9__1r8bv.xlsx
Мой код=
k = 0
for s in open('09.txt'):
a = [int(x) for x in s.split()]
a1 = [x for x in a if a.count(x) == 2]
a2 = [x for x in a if a.count(x) == 1]
if len(a1)== 2 and len(a2)== 4:
if (len(a2) * 2 / 4 ) <= sum(a1):
k += 1
print(k)
Хоть бы язык какой сказал для приличия
У тебя ошибочное условие в if:
if sum(a2) / 4 <= sum(a1):
k = 0
for s in open('09.txt'):
a = list(map(int, s.split()))
counts = {}
for num in a:
counts[num] = counts.get(num, 0) + 1
duplicates = [num for num, cnt in counts.items() if cnt == 2]
uniques = [num for num, cnt in counts.items() if cnt == 1]
if len(duplicates) == 1 and len(uniques) == 4:
sum_duplicates = duplicates[0] * 2
sum_uniques = sum(uniques)
if (sum_uniques / 4) <= sum_duplicates:
k += 1
print(k)