Перлы и конвертер

Чтобы решить эту задачу заведем k очередей для каждого цвета жемчужин, а также будем поддерживать количество непустых из них. Тогда, если при добавлении очередной жемчужины в нужную очередь, все очереди становятся непустыми, соберем набор из жемчужин находящихся в началах очередей.

Важно поддерживать актуальные данные в очередях, поэтому при добавлении i-й жемчужины, важно не забыть вынуть i - m - 1-ю из ее очереди.

Обратим внимание, что каждую жемчужину мы ровно один раз добавим в очередь и ровно один раз вынем, а также проход по очередям будет совершен только в случае нахождения ответа. Получаем решение за O(n + k).