Общий принцип решения. Без ввода количества рядов и мест в них, так что ваш Сириус вряд ли примет. Ищем номер наименьшего по длине ряда в котором kk рядом стоящих свободных мест. И с учетом что в матрице ЕСТЬ kk таких мест, иначе будет не правильно, будет выдавать первый ряд. Обработку этого условия нужно дорабатывать
m = [[0,1,1,1,1,1,0,0],
[0,1,0,0,1,0,0,0,1],
[1,1,1,1,1,1,1,1,1],
[0,1,0,0,0,1],
[1,1,1,1,1]
]
kk = 3
def f(n):
global j, kk
k = kk
res = 0
for i in range(len(n) - k + 1):
if not sum(n[i:k]): res = j
k += 1
return res
cinema = []
for j in m:
cinema += [f(j)]
result = list(map(lambda x: len(x) if x != 0 else 0,cinema))
max_ = max(result)
for i in range(len(result)):
if result[i] < max_ and result[i]:
max_ = result[i]
print(kk,'находящихся рядом свободных места находятся в', result.index(max_) + 1, 'ряду. И у него наименьшая длина из всех вариантов')
3 находящихся рядом свободных места находятся в 4 ряду. И у него наименьшая длина из всех вариантов
https://pastebin.com/CmytX9Wg