Вопрос задан 09.07.2023 в 07:12. Предмет Информатика. Спрашивает Калиниченко Вадим.

ДАМ 100 БАЛЛОВ Задача 7: Ремонт забораЗабор состоит из N одинаковых вертикальных досок. Некоторые

из досок сгнили и нуждаются в замене, для каждой доски известно, нужно ли её заменить. Для ремонта забора можно использовать продающиеся в магазине щиты, которые бывают L разных видов: шириной в 1 доску, в 2 доски, ..., в L досок. Щит нельзя разрезать на части, то есть одним щитом можно заменить не более любых L подряд идущих досок. При этом можно менять не только сгнившие доски, но и хорошие.Оказалось, что все щиты стоят одинаково, независимо от размера щита. Определите, какое наименьшее число щитов необходимо приобрести, чтобы починить весь забор.Входные данныеПервая строка входных данных содержит целое число L (L > 0) – максимальный размер щита. Во второй строке входных данных записано целое число N (N > 0) – количество досок в заборе. Следующие N строк содержат по одному числу, равному 0 или 1. Число 1 обозначает, что соответствующая доска в заборе нуждается в замене, число 0 – что доска может быть сохранена.Выходные данныеПрограмма должна вывести одно целое число – минимальное число щитов, которое необходимо приобрести для ремонта всего забора.Система оцениванияРешение, правильно работающее только для случаев, когда числа L и N не превосходят 1000, будет оцениваться в 6 баллов.В 10 баллов будет оцениваться решение, правильно работающее, когда числа L и N не превосходят 105.ПримерВвод Вывод Пояснение38001010102Максимальная ширина одного щита равна 3. Забор состоит из 8 досок, нужно заменить доски с номерами 3, 5 и 7. Для этого достаточно двух щитов, например, одним щитом меняем доски с номерами 3, 4, 5, а другим щитом меняем доску с номером 7.
0 0
Перейти к ответам

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

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

Ответ:

max = int(input())

Len = int(input())

zabor = []

rem = 0

tl = 0

for i in range(Len):

   zabor.append(int(input()))

for i in zabor:

   if i == 1 and tl == 0:

       rem += 1

       tl = max

   if tl > 0:

       tl -= 1

print(rem)  

Объяснение:

Соблюдай пробелы!!!!

5 звезд и Спасибо))

0 0
Отвечает Киселева Александра.

Ответ:

Решил на python3

MaxLenRep = int(input())

Len = int(input())

zabor = []

rem = 0

tl = 0

for i in range(Len):

   zabor.append(int(input()))

for i in zabor:

   if i == 1 and tl == 0:

       rem += 1

       tl = MaxLenRep

   if tl > 0:

       tl -= 1

print(rem)

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

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

Пример кода на Python:

python
L = int(input()) # Максимальная ширина щита N = int(input()) # Количество досок boards = [int(input()) for _ in range(N)] # Список досок (0 - хорошие, 1 - требуют замены) shields_needed = 0 # Количество щитов, которое нужно приобрести current_shield_width = 0 # Текущая ширина щита for board in boards: if board == 1: # Если доска требует замены current_shield_width = L # Ставим новый щит else: current_shield_width += 1 # Увеличиваем текущую ширину щита if current_shield_width >= L: # Если текущая ширина достигла максимальной shields_needed += 1 current_shield_width = 0 # Обнуляем текущую ширину if current_shield_width > 0: # Если в конце осталась неиспользованная ширина щита shields_needed += 1 print(shields_needed)

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

0 0

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

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

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

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