Тип 9 № 73835 
Работа с таблицами. Задания для подготовки
i
В каждой строке электронной таблицы записаны шесть натуральных чисел.
Назовём ячейку таблицы интересной, если для числа в ней одновременно выполнены все следующие условия:
— это число не встречается в других ячейках той же строки;
— это число встречается не менее 330 раз в других ячейках того же столбца;
— это число больше среднего арифметического всех чисел строки, в которой оно находится (с учётом самого числа).
Определите, сколько в таблице строк, содержащих ровно одну интересную ячейку.
Задание 9
Решение. Сначала проверим первое условие. Для этого в ячейку G1 введем формулу:
=СЧЁТЕСЛИ($A1:$F1;A1) и скопируем эту формулу во все оставшиеся ячейки
диапазона G1:L30000.Проверим второе условие. Для этого в ячейку M1 введем формулу:
=ЕСЛИ(СЧЁТЕСЛИ(A:A;A1)>=331;1;0) и скопируем эту формулу во все оставшиеся ячейки
диапазона M1:R30000.
Проверим третье условие. Для этого в ячейку S1 введем формулу, чтобы посчитать среднее арифметическое всех чисел строки:
=СРЗНАЧ(A1:F1) и скопируем эту формулу во все оставшиеся ячейки
диапазона S2:S30000. В ячейку T1 введем формулу:
=ЕСЛИ(A1>$S1;1;0) и скопируем эту формулу во все оставшиеся ячейки
диапазона T1:Y30000.Определим уникальные ячейки. Для этого вв ячейку Z1 введем формулу:
=ЕСЛИ(И(G1=1;M1=1;T1=1);1;0) и скопируем эту формулу во все оставшиеся ячейки
диапазона Z1:AE30000.В ячейке AF посчитаем количество уникальных ячеек в строке. Для этого в ячейку AF1 введем формулу:
=СУММ(Z1:AE1) и скопируем эту формулу во все оставшиеся ячейки
диапазона AF1:AF30000.Проверим, удовлетворяет ли строка требованиям задачи.
Для этого в ячейку AG1 введем формулу:
=ЕСЛИ(AF1=1;1;0) и скопируем эту формулу во все оставшиеся ячейки
диапазона AG1:AG30000.Окончательно воспользовавшись формулой:
=СУММ(AG:AG), получим ответ — 4175.
Ответ: 4175.
Приведём решение Юрия Красильникова на языке Python.
# Необходимо предварительно сохранить данные из таблицы LibreOffice Calc
# в файл .csv с разделителем ';'
a = [list(map(int,s.split(';'))) for s in open('9.csv')]
словари = [{} for i in range(6)]
# словари - это список из шести словарей. Элемент словари[i] содержит сведения,
# сколько раз каждое число появляется на i-м месте в строках чисел.
# Список словарей ускоряет работу.
for числа in a: # заполнение словарей
for i in range(6):
словари[i][числа[i]] = словари[i].get(числа[i],0)+1
ответ = 0
for числа in a: # подсчёт числа строк согласно условию
интересных = 0
for i in range(6): # сколько интересных ячеек из шести
условие1 = числа.count(числа[i]) == 1
условие2 = словари[i][числа[i]] >= 331 # 1 раз в текущей строке и >= 330 в остальных
условие3 = числа[i] > sum(числа)/len(числа)
if условие1 and условие2 and условие3: интересных += 1
if интересных == 1: ответ += 1
print(ответ)
Ответ: 4175