Откройте файл электронной таблицы, содержащей в каждой строке четыре натуральных числа. Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:
— наибольшее из четырёх чисел меньше суммы трёх других;
— четыре числа можно разбить на две пары чисел с равными суммами.
В ответе запишите только число.
Сначала определим максимальное число, которое встречается в строке, для этого
=МАКС(A1:D1)
и скопируем её во все ячейки
Если значение
=ЕСЛИ(E1 < F1;1;0)
и скопируем её во все ячейки
Проверим второе условие задачи, для этого
=ЕСЛИ(ИЛИ(A1+B1=C1+D1;A1+C1=B1+D1;A1+D1=B1+C1);1;0)
и скопируем её во все ячейки
Проверим соответствие строк условиям задачи. Для этого
=ЕСЛИ(И(G1=1;H1=1);1;0)
и скопируем её во все ячейки
Окончательно с помощью формулы
Ответ: 118.
Приведём решение Артёма Гридина на языке Python.
from itertools import permutations
def f(s):
for p in permutations(s):
if p[0]+p[1] == p[2]+p[3]:
return True
return False
t = tuple(map(lambda x: sorted(tuple(map(int, x.split(';')))), open('1_9.csv').read().splitlines()))
cnt = 0
for s in t:
if s[-1] < sum(s[:3]) and f(s):
cnt += 1
print(cnt)
Примечание. Файл следует сохранить в формате CSV.
Приведём решение Артёма Гридина на языке Python.
f = open('1_9.csv')
cnt = 0
for s in f:
a=list(map(int,s.split(';')))
for i in range(len(a)-3):
if max(a)<(sum(a)-max(a)):
if ((int(a[i])+int(a[i+1]))==(int(a[i+2])+int(a[i+3]))) or \
((int(a[i])+int(a[i+2]))==(int(a[i+1])+int(a[i+3]))) or \
((int(a[i])+int(a[i+3]))==(int(a[i+1])+int(a[i+2]))):
cnt += 1
print(cnt)
Примечание. Файл следует сохранить в формате CSV.
Приведём решение Ильи Крылова на языке Python.
data = [[int(j) for j in i.split(';')] for i in open('1_9.csv').readlines()]
counter = 0
for i in data:
i = sorted(i)
test1 = i[3] < i[0] + i[1] + i[2]
test2 = (i[0] + i[1] == i[2] + i[3]) or (i[0] + i[2] == i[1] + i[3]) or (i[0] + i[3] == i[1] + i[2])
if test1 and test2:
counter += 1
print(counter)
Примечание. Файл следует сохранить в формате CSV.
Приведём решение Михаила Глинского на языке Python.
f = open('1_9.txt')
count = 0
for s in f:
m=[int(x) for x in s.split()]
m.sort()
if (m[0]+m[-1])==(m[1]+m[2]) and m[3]<(sum(m)-m[3]):
count += 1
print(count)
Примечание. Файл следует сохранить в формате txt.
Приведём решение Юрия Красильникова на языке Python.
k = 0
for s in open('1_9.csv'):
a = list(map(int,s.split(";")))
if 2 * max(a) < sum(a) and 2 * (max(a) + min(a)) == sum(a):
k += 1
print(k)
Примечание. Файл следует сохранить в формате CSV.

