Может ли кто-нибудь помочь мне найти оптимальный алгоритм динамического программирования для этой проблемы
На пути к обеду участники ССС выстраиваются в очередь за своими вкусными кудрявыми картошками фри.Участники 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.