Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Будем считать две заполненные ячейки соседними, если у них есть общая сторона или угол. У каждой ячейки в углах таблицы — три соседние, у неугловых ячеек в первых и последних строках и столбцах — по пять соседних, у внутренних ячеек таблицы — по восемь соседей.
Назовём ячейку таблицы интересной, если выполняются следующие условия:
— число в данной ячейке больше не встречается в данной строке;
— в соседних ячейках есть хотя бы одно число, большее, чем число в данной ячейке.
Определите количество строк таблицы, для которых выполнены следующие условия:
— строка содержит не менее трёх интересных ячеек;
— в строке есть повторяющиеся числа.
Для начала добавим в начало пустую строку вначале и пустой столбец. Таким образом, мы получим, что у всех ячеек будет одинаковое количество соседних.
Найдем, сколько раз числа повторяются в строке. Для этого
=СЧЁТЕСЛИ($B2:$G2;B2)
и скопируем ее на
Определим, является ли ячейка интересной, для этого
=ЕСЛИ(И(I2=1;ИЛИ(A2>B2;A1>B2;B1>B2;C1>B2;C2>B2;C3>B2;B3>B2;A3>B2));1;0)
и скопируем ее на
Посчитаем количество интересных ячеек в строке. Для этого
=СУММ(O2:T2)
и скопируем ее на
Проверим, выполняются ли для строки условия задачи. Для этого
=ЕСЛИ(И(СУММ(I2:N2)>6;U2>2);1;0)
и скопируем ее на
Окончательно находим количество искомых строк:
и получаем ответ — 1986.
Ответ: 1986.
Приведём решение Игоря Левшина на языке Python.
r = open('09.txt')
r = [list(map(int,st.split())) for st in r]
count = 0
r.insert(0,[0,0,0,0,0,0,0,0])
r.append([0,0,0,0,0,0,0,0])
for i in r:
i.insert(0,0)
i.append(0)
for i in range(1,len(r)-1):
k_i=0
for j in range(1,7):
if r[i].count(r[i][j])==1:
t=r[i][j]
if (t < r[i][j-1] or t < r[i][j+1]
or t < r[i-1][j-1] or t < r[i-1][j] or t < r[i-1][j+1]
or t < r[i+1][j-1] or t < r[i+1][j] or t < r[i+1][j+1]):
k_i+=1
if k_i >= 3 and len(set(r[i])) < 7 :
count += 1
print(count)
Примечание. Для программного решения файл exсel необходимо сохранить как текстовый документ.

