Вопрос задан 05.07.2023 в 04:17. Предмет Информатика. Спрашивает Горощенко Мария.

Пожалуйста, помогите решить задачу Кинотеатр!! В кинотеатре n рядов по m мест в каждом. В

двумерном массиве хранится информация о проданных билетах, число 1 означает, что билет на данное место уже продан, число 0 означает, что место свободно. Поступил запрос на продажу k билетов на соседние места в одном ряду. Определите, можно ли выполнить такой запрос. Входные данные Программа получает на вход числа n≤30 и m≤30. Далее идут n строк, содержащих m чисел (0 или 1), разделённых пробелами. Затем дано число k. Выходные данные Программа должна вывести номер ряда, в котором есть k подряд идущих свободных мест. Если таких рядов несколько, то выведите номер наименьшего подходящего ряда. Если подходящего ряда нет, выведите число 0.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Лешкевич Алина.

#создаём матрицу, рассматриваем все возможные срезы длиной k

#и при первом подходящем наборе нулей записываем ответ

#Python

n, m = map(int, input().split())

hall = [list(map(int, input().split())) for i in range(n)]

k = int(input())

ans = 0

flag = True

for i in range(n):

   if flag:

       for j in range(m-k+1):

           if hall[i][j:j+k] == [0]*k:

               ans = i + 1

               flag = False

print(ans)

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи вам необходимо пройтись по каждому ряду и проверить наличие k подряд идущих свободных мест. Если такой ряд будет найден, вы выведете его номер. Вот пример кода на Python, который решает данную задачу:

python
def find_seats(n, m, cinema): k = int(input()) for row in range(n): consecutive_empty_seats = 0 for seat in cinema[row]: if seat == 0: consecutive_empty_seats += 1 if consecutive_empty_seats == k: return row + 1 else: consecutive_empty_seats = 0 return 0 n, m = map(int, input().split()) cinema = [] for _ in range(n): row = list(map(int, input().split())) cinema.append(row) result = find_seats(n, m, cinema) print(result)

Вы можете вставить этот код в среду разработки Python и ввести входные данные, как указано в задаче. Программа выведет номер ряда, в котором есть k подряд идущих свободных мест, или 0, если такого ряда нет.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос