короче, кодим. Двумерный массив и его размеры даны.
легенда: кинотеатр, каждый элемент-место, если единица, занято. Если ноль, то свободно.
Нужно найти ряд, в котором есть К свободных соседних мест, К тоже дано. Самый маленький номер ряда нужен, если их несколько. Если такого нет, то выводим нолик
код:
n, m = map(int, input().split())
a= [list(map(int, input().split())) for i in range(n)]
k=int(input())
count=0
res=[]
for i in a:
for j in range(len(i)):
if i[j]==0:
count+=1
if count==k:
res.append( a.index(i))
break
else:
count=0
if len(res)==0:
print(count)
else:
print(min(res))
Получаю размеры, список из строк в двумерный массив, потом получил число К
Получаю по отдельности списки массива, чекаю их на нолик, если да, то плюс, если попался минус, то обнуляю. Если счетчик приравнялся к К, то дропаю в пустой список номер ряда.
Потом циклик. Если в пустой тот список ничего не добавили, то пишем нолик.
если в нем что-то есть, то есть длина больше 0, то самый маленький элемент пишем.
Что не так????????????
Answers & Comments
Ответ:
все работает нормально
Объяснение:
ты тут код без отступов дал, мб там что-то не так. внизу код с отступами, который я тестил .
если тебе не нравится что выводит на 1 меньше: нумерация массива не с 1 начинается, а с 0. просто добавляй а res (индекс + 1)
Код:
n, m = map(int, input().split())
a= [list(map(int, input().split())) for i in range(n)]
print(a)
k = int(input())
count = 0
res=[]
for i in a:
for j in range(len(i)):
if i[j] == 0:
count += 1
if count == k:
res.append( a.index(i))
break
else:
count = 0
if len(res) == 0:
print(count)
else:
print(min(res))
ps: лучше так сделай
k = int(input())
line = 0
for i in a:
count = 0
for j in range(len(i)):
if i[j] == 0:
count += 1
if count >= k:
line = a.index(i) + 1
break
print(line)