• Предмет: Информатика
  • Автор: XxJoTaRoxX
  • Вопрос задан 5 месяцев назад

РЕШИТЬ ЗАДАЧУ НА ПИТОН!ПОЖАЛУЙСТА СРОЧНО!!!РЕШЕНИЕ ДОЛЖНО СОСТОЯТЬ ИЗ ГОТОВОГО ПРАВИЛЬНОГО КОДА!!!
Покраска забораУ Васи на даче длина забора составляет N метров. Часть забора необходимо покрасить. При обследовании забор был разбит на N участков длиной 1 метр, и для каждого участка было определено, нуждается ли он в покраске или нет.

После того как валик для покраски пропитывается в ведре краской, им можно окрасить не более L

метров подряд. В том числе можно перекрашивать и участки в этом не нуждающиеся.

Определите, за какое количество подобных операций (пропитать валик краской и перекрасить не более L

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

Первая строка входных данных содержит целое число L
( 0
— что участок в покраске не нуждается.
Формат выходных данных

Программа должна вывести одно целое число — минимальное количество описанных действий, которое необходимо для перекраски забора.
Замечание

В тесте из примера за первое действие можно, например, перекрасить второй метр забора, а за второе — с 5
-го по 7

-й метр.
Ввод
Вывод

3
8
0
1
0
0
1
0
1
0

2

Ограничения

Время выполнения: 5 секунд
Процессорное время: 1 секунда
Память: 256 MB

Ответы

Ответ дал: ilyav1nokurov
0

n = int(input())

fence = list(map(int, input().split()))

l = int(input())

# Считаем количество участков, которые нужно покрасить

to_paint = sum(fence)

# Разбиваем забор на группы, которые можно покрасить за один раз

groups = []

i = 0

while i < len(fence):

   # Ищем первый участок, который нужно покрасить

   while i < len(fence) and not fence[i]:

       i += 1

   if i >= len(fence):

       break

   # Считаем, сколько участков можно покрасить за один раз

   j = i + 1

   while j < len(fence) and j - i <= l and not fence[j]:

       j += 1

   groups.append(j - i)

   i = j

# Считаем, сколько раз нужно покрасить забор

num_paints = 0

for g in groups:

   num_paints += (g + l - 1) // l

print(num_paints)

Вас заинтересует