Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел.
Назовём ячейку таблицы интересной, если выполняются следующие условия:
— число в данной ячейке больше не встречается в данной строке;
— число в данной ячейке встречается в данном столбце, включая данную ячейку, больше
Определите количество строк таблицы, содержащих
Для начала найдем сколько раз числа повторяются в строке. Для этого
=СЧЁТЕСЛИ($A1:$F1;A1)
и скопируем ее на
Найдем, сколько раз числа повторяются в столбце. Для этого
=СЧЁТЕСЛИ(A$1:A$16000;A1)
и скопируем ее на
Проверим каждую ячейку и узнаем, интересная она или нет. Для этого
=ЕСЛИ(И(G1=1;M1>150);1;0)
и скопируем ее на диапазон S1:X16000.
Посчитаем количество интересных ячеек в строке и узнаем, удовлетворяет ли условию строка. Для этого
=ЕСЛИ(СУММ(S1:X1)>4;1;0)
и скопируем ее на
Окончательно находим количество искомых строк. Для этого записываем следующее:
и получаем ответ 9527.
Ответ: 9527.
Приведём решение Юрия Красильникова на языке Python.
f = open('09.csv')
k = 0
arow = [[int(x) for x in s.split(';')] for s in f]
acol = [[arow[i][j] for i in range(len(arow))] for j in range(6)]
for i in range(len(arow)):
kint = 0
for j in range(6):
x = arow[i][j]
if arow[i].count(x) == 1 and acol[j].count(x) > 150:
kint += 1
if kint >= 5:
k += 1
print(k)
Приведём другое решение Юрия Красильникова на языке Python.
lines = [list(map(int,s.split(';'))) for s in open('09.csv')]
d={}
for line in lines:
for i in range(6):
if line[i] not in d:
d[line[i]]=[0]*6
d[line[i]][i] += 1
goodlines = [line for line in lines if sum([line.count(line[i])==1 and d[line[i]][i] > 150 for i in range(6)]) >= 5]
print(len(goodlines))
Примечание. Файл следует сохранить в формате CSV.

