RGB рядок#12320

RGB рядок

1 секунда
256 мегабайтів
Середня

Вам дано рядок довжини , що складається лише з символів R, G, B.

Рядок вважається циклічним: після символа s_n йде s_1, тобто індекси рахуються по модулю (наприклад, s_{n+1}=s_1, s_{n+2}=s_2).

Для кожної позиції розглянемо трійку послідовних символів (s_i,\; s_{i+1},\; s_{i+2}), де всі індекси беруться по модулю .

Назвемо трійку гарною, якщо всі три символи в ній попарно різні (тобто це R, G, B у будь-якому порядку).

За одну операцію ви можете вибрати будь-яку позицію та змінити s_i на будь-який з трьох символів R, G, B. Вартість операції дорівнює .

Знайдіть мінімальну кількість операцій, необхідних для того, щоб для кожного i=1,2,\dots,n трійка (s_i, s_{i+1}, s_{i+2}) була гарною.

Вхідні дані

В першому рядку задано число (1 \le n \le 10^6) — довжина рядка .

В другому рядку задано рядок який складається з символів , , .

Вихідні дані

Потрібно вивести одне число — мінімальну кількість операцій, необхідну для того, щоб усі трійки (s_i, s_{i+1}, s_{i+2}) для i=1,2,\dots,n стали гарними.

Якщо це неможливо, виведіть .

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Примітка

Для другого тестового випадку відповідь досягається при перетворенні рядка в рядок .

Оцінювання

  1. Підзадача ( балів) : (n \le 15)

  2. Підзадача ( балів) : (Рядок складається лише з різних символів)

  3. Підзадача ( балів) : (n \le 5000)

  4. Підзадача ( балів) : Без додаткових обмежень