P6116 [JOI 2019 Final] 有趣的家庭菜园 3 / Growing Vegetables is Fun 3

题目背景

JOI 2019 Final T3

题目描述

家庭菜园专家 JOI 先生在他的家庭菜园中种植了一种叫 Joy 草的植物。在他的菜园里,有 $N$ 个花盆自东向西摆放,第 $i$ 个编号为 $i$。每个花盆中有一株 Joy 草。 春天到了,JOI 先生注意到 Joy 草如他期望地长出了各种颜色的叶子,但他也发现 Joy 草的生长速度没有他期望的那么快。他查阅了书籍,找到了草的以下特点: - Joy 草有三种品种,分别会长出红色、绿色和黄色的叶子。 - 如果两株同一颜色的 Joy 草紧密相邻,它们的生长速度就会减慢。 因此,JOI 先生决定重新摆放花盆,使得没有两株相邻的 Joy 草颜色相同。 花盆非常沉重,因此 JOI 先生每次只能交换相邻的两个花盆。形式化的说,JOI 先生每次操作可以选择一个 $i$,然后交换花盆 $i$ 和花盆 $i+1$。 请编写一个程序,计算最少的交换次数。

输入格式

第一行一个整数 $N$。 接下来一行一个长度为 $N$ 的字符串 ,每个字符为 `R`,`G`,`Y` 中的一个,表示 Joy 草的颜色。

输出格式

输出一行一个整数,表示完成目标所需的最少操作次数。如果无解,输出 $-1$。

说明/提示

### 样例解释 样例解释 $1$: 一种合法的方案是: 第一步:交换第三个花盆和第四个花盆。 第二步:交换第二个花盆和第三个花盆。 可以证明,不存在次数更少的方案 样例解释 $2$: 可以证明,无论如何移动,均不可达到目标。 ### 子任务 Subtask 1(5 分):$N\le 15$。 Subtask 2(55 分):$N\le 60$。 Subtask 3(15 分):字符串仅包含 `R`,`G`。 Subtask 4(25 分):$N\le 400$。