В кинотеатре n рядов по m мест в каждом. В двумерном массиве хранится информация о проданных билетах, число 1 означает, что билет на данное место уже продан, число 0 означает, что место свободно. Поступил запрос на продажу k билетов на соседние места в одном ряду. Определите, можно ли выполнить такой запрос.
Входные данные
Программа получает на вход числа n≤30 и m≤30. Далее идут n строк, содержащих m чисел (0 или 1), разделённых пробелами. Затем дано число k.
Выходные данные
Программа должна вывести номер ряда, в котором есть k подряд идущих свободных мест. Если таких рядов несколько, то выведите номер наименьшего подходящего ряда. Если подходящего ряда нет, выведите число 0.
l,k = [[i.count("1") for i in input().split('0')] for i in range(list(map(int, input().split()))[0])],int(input())
print( 0 if not [v+1 for v, _k in enumerate(l) if k in _k] else [v+1 for v, _k in enumerate(l) if k in _k][0])
n, m = map(int, input().split())
t, p = [''.join(input().split()) for _ in range], '0' * int(input())
for i, s in enumerate(t, start=1):
if p in s:
print(i)
break
else: print(0)
О, старина Сириус... m = [[0,1,1,1,1,1,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],
[1]
]
kk = 2
def f:
global j, kk
k = kk
res = 0
for i in range(len - 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 else 0,cinema))
if result.count(0) == len(result):
print('таких мест нет')
else:
max_ = max(result)
for i in range(len(result)):
if result < max_ and result:
max_ = result
print(kk,'находящихся рядом свободных места находятся в', result.index(max_) + 1, 'ряду. И у него наименьшая длина из всех вариантов')
def find_available_row(n, m, seats, k):
for row in range:
consecutive_free_seats = 0
for seat in seats[row]:
if seat == 0:
consecutive_free_seats += 1
if consecutive_free_seats == k:
return row + 1 # Нумерация рядов начинается с 1
else:
consecutive_free_seats = 0
return 0
# Ввод данных
n, m = map(int, input().split())
seats = [list(map(int, input().split())) for _ in range]
k = int(input())
# Поиск подходящего ряда
result = find_available_row(n, m, seats, k)