Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел.
Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:
— в строке только одно число повторяется ровно два раза, остальные числа различны;
— среднее арифметическое неповторяющихся чисел строки не больше суммы повторяющихся чисел.
В ответе запишите только число.
Сохраним файл в формате «.txt» и решим задачу с помощью языка Python:
count = 0
f = open('9.txt')
for s in f:
arr = list(map(int, s.split()))
rep = sum(arr) - sum(set(arr))
mean_unrep = sum(set(arr) - {rep}) / 4
if len(set(arr)) == 5 and mean_unrep <= 2 * rep:
count += 1
print(count)
Ответ: 2241.
Приведем другое решение от Мокрушина Николая.
Примечание. В файле приведенного задания ФИПИ используются нули, что противоречит определению натуральные числа. Данная опечатка не влияет на ответ.
Приведём решение Файзуллина Владимира (Пермь) на языке Python.:
def kp(x):
pk=[]
for i in range(len(x)):
pk+=[x.count(x[i])]
return pk
k=0
for a in open('9.txt'):
s1 = 0
s2 = 0
x = list(map(int, a.split()))
kel = kp(x)
id = sum([1,1,1,1,2,2])
if sum(kel) == id:
for i in range(len(x)):
if kel[i] == 2:
s1 += x[i]
if kel[i] == 1:
s2 += x[i]
if s2/4 <= s1:
k += 1
print(k)
Приведём решение Михаила Глинского на языке Python.:
f = open('9.txt')
k = 0
for s in f:
m=[int(x) for x in s.split()]
if len(set(m))==5:
mp = [x for x in m if m.count(x)==2]
mn = [x for x in m if m.count(x)==1]
if sum(mn) / 4 <= sum(mp): k+=1
print(k)
Примечание. Файл следует сохранить в формате txt.
Приведём решение Артёма Гридина на языке Python.:
print([True if len(set(y)) == 5 and any([y.count(y[0]) == 2 and y[0]*2>=sum([n for n in set(y) if n!=y[0]])/4,
y.count(y[1]) == 2 and y[1]*2>=sum([n for n in set(y) if n!=y[1]])/4,
y.count(y[2]) == 2 and y[2]*2>=sum([n for n in set(y) if n!=y[2]])/4,
y.count(y[3]) == 2 and y[3]*2>=sum([n for n in set(y) if n!=y[3]])/4,
y.count(y[4]) == 2 and y[4]*2>=sum([n for n in set(y) if n!=y[4]])/4,
y.count(y[5]) == 2 and y[5]*2>=sum([n for n in set(y) if n!=y[5]])/4,
]) else False for y in tuple(map(lambda x: sorted(tuple(map(int, x.split(';')))), open('9.csv').read().splitlines()))].count(True))
Примечание. Файл следует сохранить в формате csv.

