Вопрос задан 05.07.2023 в 01:31. Предмет Информатика. Спрашивает Есенжанова Баянсұлу.

Python 3 В кинотеатре n рядов по m мест в каждом. В двумерном массиве хранится информация о

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

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

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

Ответ:

Прикреплён в текстовом файле. Здесь исходник в 90 строк будет очень убого отформатирован (кстати он в txt :()

Объяснение:

Красивого алгоритма не знаю для этой задачи, в итоге вышло много стратегий. Для теста можно раскоментить строки и поиграть с бОльшими числами, ну или через RAND набить себе данных

P.S.

Не забывайте нажать "Спасибо", поставить оценку, и если ответ удовлетворил, то выберите его как "Лучший" :)



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

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

Вот пример кода на Python, который решает эту задачу:

python
def find_seats(matrix, k): n = len(matrix) m = len(matrix[0]) for row in range(n): consecutive_free_seats = 0 for seat in matrix[row]: if seat == 0: consecutive_free_seats += 1 if consecutive_free_seats == k: return row + 1 # +1 так как номер ряда начинается с 1 else: consecutive_free_seats = 0 return 0 # Чтение ввода n, m = map(int, input().split()) matrix = [] for _ in range(n): row = list(map(int, input().split())) matrix.append(row) k = int(input()) result = find_seats(matrix, k) print(result)

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

0 0

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

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

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

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