
Короче, кодим. Двумерный массив и его размеры даны. легенда: кинотеатр, каждый элемент-место,
если единица, занято. Если ноль, то свободно.Нужно найти ряд, в котором есть К свободных соседних мест, К тоже дано. Самый маленький номер ряда нужен, если их несколько. Если такого нет, то выводим ноликкод:n, m = map(int, input().split())a= [list(map(int, input().split())) for i in range(n)]k=int(input())count=0res=[]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=0if len(res)==0: print(count)else: print(min(res))Получаю размеры, список из строк в двумерный массив, потом получил число КПолучаю по отдельности списки массива, чекаю их на нолик, если да, то плюс, если попался минус, то обнуляю. Если счетчик приравнялся к К, то дропаю в пустой список номер ряда.Потом циклик. Если в пустой тот список ничего не добавили, то пишем нолик.если в нем что-то есть, то есть длина больше 0, то самый маленький элемент пишем.Что не так????????????

Ответы на вопрос

Ответ:
все работает нормально
Объяснение:
ты тут код без отступов дал, мб там что-то не так. внизу код с отступами, который я тестил .
если тебе не нравится что выводит на 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)




Я могу помочь вам с вашим кодом на Python.
Ваш код выглядит правильным, но есть несколько мелких ошибок, которые нужно исправить.
- Вместо `a.index(i)` вам нужно использовать `a.index(i) + 1`, так как индексы в Python начинаются с нуля, а вам нужен номер ряда, начиная с единицы. - Вместо `break` вам нужно использовать `continue`, чтобы пропустить оставшиеся элементы в ряду и перейти к следующему ряду. Иначе вы можете пропустить другие подходящие ряды. - Вместо `print(min(res))` вам нужно использовать `print(min(res) + 1)`, по той же причине, что и в первом пункте.
Исправленный код выглядит так:
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) + 1) continue else: count = 0 if len(res) == 0: print(count) else: print(min(res) + 1)
Надеюсь, это поможет вам решить вашу задачу. Если у вас есть еще вопросы, я буду рад ответить на них.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili