nasik134
18.01.2020 16:11

Ремонт дороги Длина автомобильной дороги составляет N километров. Часть дороги необходимо отремонтировать. При обследовании дорога была разбита на N участков длиной 1 километр, и для каждого участка было определено, нуждается ли он в ремонте или нет, после чего был составлен план дороги, на котором отмечены участки, нуждающиеся в ремонте.

Для ремонта дороги можно привлечь несколько компаний-подрядчиков. Каждая компания может отремонтировать только непрерывный фрагмент дороги. При этом из-за требований антимонопольного законодательства длина фрагмента дороги, который ремонтирует одна компания, не должна превышать L километров (даже если на фрагменте, который ремонтирует одна компания, есть не нуждающиеся в ремонте участки, общая длина данного фрагмента не должна превышать L километров).

Определите, какое наименьшее количество компаний-подрядчиков необходимо привлечь для ремонта дороги.

Входные данные

Первая строка входных данных содержит целое число L ( L> 0 ) — максимальную длину фрагмента дороги, который может отремонтировать одна компания. Во второй строке входных данных записано целое число N ( N> 0 ) — длина всей дороги. Следующие N строк содержат по одному числу, равному 0 или 1. Число 1 обозначает, что соответствующий участок дороги нуждается в ремонте, число 0 — что участок не требует ремонта.

Выходные данные

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

Примечание

В тесте из примера первая компания может отремонтировать участок номер 3, вторая компания — участки с 5 по 7.

Примеры
Ввод
Вывод
3
8
0
0
1
0
1
0
1
0
2

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
132427
27.01.2022 04:13

def letter(text):

   text=text.split('.')

   text=text[0]

   text=text.split()

   text=''.join(text)

   text=text.upper()

   d={}

   for i in set(text):

       d[i]=text.count(i)

   maxim=max(d.values())

   s=0

   for k in d.values():

       if k==maxim:

           s+=1

   

   if s==1:

       for j in d:

           if d[j]==max(d.values()):

               return(f'{j} {d[j]}')

   else:

       qq={}

       for z in d:

           if d[z]==max(d.values()):

               qq[z]=max(d.values())

               

       for l in qq:        

           if l==min(qq.keys()):

               return(f'{l} {qq[l]}')

           

def runner():

   print(letter('It is not a simple task. Yes!'))

   print(letter('A'))

   print(letter('Bb Aa Cc A'))

runner()    

   

Объяснение:

Объяснение писать долго и неудобно) но если кому интересно, могу рассказать, например, через вк или дискорд. Напишите мне в личку

0,0(0 оценок)
Ответ:
abduabdu2015
27.01.2022 04:13

def letter(text):

   text=text.split('.')

   text=text[0]

   text=text.split()

   text=''.join(text)

   text=text.upper()

   d={}

   for i in set(text):

       d[i]=text.count(i)

   maxim=max(d.values())

   s=0

   for k in d.values():

       if k==maxim:

           s+=1

   

   if s==1:

       for j in d:

           if d[j]==max(d.values()):

               return(f'{j} {d[j]}')

   else:

       qq={}

       for z in d:

           if d[z]==max(d.values()):

               qq[z]=max(d.values())

               

       for l in qq:        

           if l==min(qq.keys()):

               return(f'{l} {qq[l]}')

           

def runner():

   print(letter('It is not a simple task. Yes!'))

   print(letter('A'))

   print(letter('Bb Aa Cc A'))

runner()    

   

Объяснение:

Объяснение писать долго и неудобно) но если кому интересно, могу рассказать, например, через вк или дискорд. Напишите мне в личку

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота