1. Тип 9 № 78034 
Работа с таблицами. Задания для подготовки
i
Откройте файл электронной таблицы, содержащей в каждой строке восемь натуральных чисел. Определите наибольший номер строки таблицы, содержащей числа, для которых выполнены оба условия:
— в строке есть ровно три числа, каждое из которых повторяется дважды, остальные числа без повторений;
— квадрат разности наибольшего и наименьшего из повторяющихся чисел строки больше удвоенной суммы квадратов её неповторяющихся чисел.
В ответе запишите только число.
Задание 9
Решение. Приведём решение на языке Python.
f = open('9.txt')
st = 0
otv = []
for s in f:
st += 1
m = [int(x) for x in s.split()]
tri = [x for x in m if m.count(x) == 2]
no_repeat = [x for x in m if m.count(x) == 1]
if len(tri) == 6 and len(no_repeat) == 2:
if (max(tri)-min(tri))**2 > 2 * (no_repeat[0]**2 + no_repeat[1]**2):
otv.append(st)
print(otv[-1])
Примечание. Файл следует сохранить в формате txt.
Ответ: 29938.
Приведём решение Юрия Красильникова на языке Python.
# Необходимо предварительно сохранить данные из таблицы LibreOffice Calc
# в файл .csv с разделителем ';'
ответ,номер = 0,0
for строка in open('9.csv'):
номер += 1
числа = list(map(int, строка.split(';')))
повторы = [x for x in числа if числа.count(x)==2]
уникумы = [x**2 for x in числа if числа.count(x)==1] # квадраты уникальных
if len(повторы)==6 and len(уникумы) == 2 and (max(повторы)-min(повторы))**2 > 2*sum(уникумы):
ответ = номер
print(ответ)
Приведём решение Юрия Красильникова в LibreOffice Calc.
Открываем файл с данными.
В ячейку I1 вписываем формулу =ЕСЛИ(СЧЁТЕСЛИ($A1:$H1;A1)=2;A1;"") и копируем её в ячейки J1:P1.
(В ячейки I1:P1 переносим числа, которые встречаются два раза.)
В ячейку Q1 вписываем формулу =ЕСЛИ(СЧЁТЕСЛИ($A1:$H1;A1)=1;A1^2;"") и копируем её в ячейки R1:X1.
(В ячейки Q1:X1 переносим квадраты чисел, которые встречаются один раз.)
В ячейку Y1 вписываем формулу =И(СЧЁТЕСЛИ(I1:P1;»")=2;СЧЁТЕСЛИ(Q1:X1;"")=6) - это первое условие.
(Подсчитываем пустые ячейки в группах из восьми ячеек.)
В ячейку Z1 вписываем формулу =(МАКС(I1:P1)-МИН(I1:P1))^2>2*СУММ(Q1:X1) - это второе условие.
В ячейку AA1 вписываем формулу =И(Y1:Z1) - это выполнение обоих условий.
В ячейку AB1 вписываем формулу =ЕСЛИ(AA1;СТРОКА();"") - номер строки, если условия выполнены.
Размножаем строку I1:AB1 до конца данных.
В ячейку AC1 вписываем формулу =МАКС(AB:AB) и получаем в ней ответ 29938.
Ответ: 29938