#P6709. [CCC2020] Swapping Seats

[CCC2020] Swapping Seats

题目描述

NN 个人坐在一张桌旁。

共有三个派别,每一个人属于一个派别。

现在,您想使属于同一派别的人坐到一起。

您可以每次将两个人交换位置,输出最小的交换次数。

输入格式

仅一行一个长度为 NN 的字符串 ss,为顺时针所有人的派别。

如果 sis_iA,则说明第 ii 个人为第一个派别的,以此类推。

输出格式

仅一行一个整数,表示最小的交换次数。

BABCBCACCA
2

提示

样例解释

$\texttt{BABCBCACCA}\to\texttt{AABCBCBCCA}\to\texttt{AABBBCCCCA}$。

子任务

本题采用捆绑测试,且本题的 Subtask 分数有微调。

  • Subtask 1(2626 分):si{s_i\in\{A,,B}\}N5×103N\le 5\times 10^3
  • Subtask 2(2727 分):si{s_i\in\{A,,B}\}
  • Subtask 3(2727 分):N5×103N\le 5\times 10^3
  • Subtask 4(2020 分):无特殊限制。

对于 100%100\% 的数据,保证 si{s_i\in\{A,,B,,C}\}1N1061\le N\le 10^6

说明

本题译自 Canadian Computing Competition 2020 Senior T4 Swapping Seats。