VK Cup 2017 - Раунд 1 |
---|
Закончено |
Мишка Лимак подготавливает задачи для соревнования по программированию. Принято, что в задачах не упоминаются названии компании-спонсора соревнования, поэтому Лимак собирается изменить некоторые слова, чтобы удовлетворить этому ограничению. Чтобы условие все еще можно было читать, он хочет изменить каждое слово как можно меньше.
У Лимака есть слово s, состоящее из заглавных букв латинского алфавита. За один шаг он может поменять местами две соседние буквы в слове. Например, он может преобразовать слово «ABBC» в «BABC» или «ABCB» за один шаг.
Лимак хочет за несколько шагов преобразовать слово так, чтобы в нем не встречалась подстрока «VK» (то есть, не было бы буквы «V», сразу за которой идет буква «K»). Можно показать, что это возможно сделать с любым словом s.
Какое минимальное число шагов должен сделать Лимак для этого?
Первая строка содержит целое число n (1 ≤ n ≤ 75) — длина слова.
Во второй строке находится слово s, состоящее из заглавных букв латинского алфавита. Длина слова равна n.
Выведите одно целое число — минимальное число шагов, которое должен сделать Лимак для того, чтобы получить слово без подстроки «VK».
4
VKVK
3
5
BVVKV
2
7
VVKEVKK
3
20
VKVKVVVKVOVKVQKKKVVK
8
5
LIMAK
0
В первом примере начальное слово — «VKVK». Минимально возможное число шагов равно 3. Оптимальная последовательность шагов показана ниже:
Во втором примере есть две оптимальные последовательности шагов. Одна из них это «BVVKV» → «VBVKV» → «VVBKV». Другая — «BVVKV» → «BVKVV» → «BKVVV».
В пятом примере можно оставить слово как есть.
Название |
---|