Автор задачі: | Мар'ян Шийка Підготував: | Мар'ян Шийка Розбір: | Мар'ян Шийка |
Ідея
Випишемо в окремий масив позиції всіх букв G у рядку. Нехай кількість таких позицій дорівнює . Оскільки ми виписуємо позиції зліва направо, масив вже буде відсортованим.
Нам потрібно вибрати букв G, які містяться у якомога коротшому відрізку. В оптимальній відповіді ці букв будуть послідовними в масиві . Тому достатньо перебрати всі групи з послідовних елементів.
Для групи
найкоротший відрізок, який містить усі ці букви, починається в p_i та закінчується в p_{i+k-1}. Тому його довжина визначається як
Отже, відповідь дорівнює
Загальна асимптотика — .