Это отличная проблема. Мне было бы очень интересно узнать, что такое «умное» решение.

ли кто-нибудь помочь мне найти оптимальный алгоритм динамического программирования дляЭта проблема

На пути к обеду участники ССС выстраиваются в очередь за своими вкусными кудрявыми картошками фри. Участники N (1 ≤ N ≤ 100) выстроились в один файл для входа в кафетерий.

Доктор V, который руководит CCC, в последнюю минуту понял, что программисты просто ненавидят стоять в очереди рядом с программистами, которые используют другой язык. К счастью, в CCC разрешены только два языка: Gnold и Helpfile. Кроме того, участники соревнований решили, что они войдут в столовую только в том случае, если они находятся в группе как минимум из K (1 ≤ K ≤ 6) участников.

Доктор V решил повторить следующую схему:

* He will find a group of K or more competitors who use the same language standing next to each other in line and send them to dinner.
* The remaining competitors will close the gap, potentially putting similar-language competitors together.

Так Доктор V записал последовательность конкурентов для вас. Могут ли пообедать все участники? Если да, какое минимальное количество групп участников нужно отправить на ужин? вход

Первая строка содержит два целых числа N и K. Вторая строка содержит N символов, которые представляют собой последовательность конкурентов в строке (H представляет файл справки, G представляет Gnold) Выходные данные

Выведите в одной строке одно число, представляющее собой минимальное количество групп, которые формируются на ужин. Если не все программисты могут пообедать, выведите -1.

Ответы на вопрос(3)

Ваш ответ на вопрос