• РЕШИТЬ ЗАДАЧУ НА ПИТОН!ПОЖАЛУЙСТА СРОЧНО!!!РЕШЕНИЕ ДОЛЖНО СОСТОЯТЬ ИЗ ГОТОВОГО ПРАВИЛЬНОГО КОДА!!! Покраска забораУ Васи на даче длина забора составляет N метров. Часть забора необходимо покрасить. При обследовании забор был разбит на N участков длиной 1 метр, и для каждого участка было определено, нуждается ли он в покраске или нет. После того как валик для покраски пропитывается в ведре краской, им можно окрасить не более L метров подряд. В том числе можно перекрашивать и участки в этом не нуждающиеся. Определите, за какое количество подобных операций (пропитать валик краской и перекрасить не более L метров) можно обновить забор так, чтобы все нуждающиеся в покраске фрагменты оказались окрашены. Формат входных данных Первая строка входных данных содержит целое число L ( 0 — что участок в покраске не нуждается. Формат выходных данных Программа должна вывести одно целое число — минимальное количество описанных действий, которое необходимо для перекраски забора. Замечание В тесте из примера за первое действие можно, например, перекрасить второй метр забора, а за второе — с 5 -го по 7 -й метр. Ввод Вывод 3 8 0 1 0 0 1 0 1 0 2 Ограничения Время выполнения: 5 секунд Процессорное время: 1 секунда Память: 256 MB

Ответы 1

  • 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)

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years