#P12765. [POI 2018 R3] 三座塔 2 Three towers 2

[POI 2018 R3] 三座塔 2 Three towers 2

题目背景

翻译来自于 LibreOJ

题目描述

题目译自 XXV Olimpiada Informatyczna — III etap Trzy wieże 2

小朋友 Bitoni 热爱玩耍。他在房间里将 nn 个积木排成一列,每块积木为白色、灰色或黑色三种颜色之一。Bitoni 想挑选一段连续的积木,用这些积木搭建三座塔。

Bitoni 将搭建三座塔:白色积木建白塔,灰色积木建灰塔,黑色积木建黑塔。若某颜色积木在选段中缺失,对应塔的高度为 00。三座塔的高度必须互不相同(即每座塔的积木数不同)。Bitoni 必须使用所有选中的积木。帮助 Bitoni 编写程序,找出满足他要求的最长连续积木段。

输入格式

第一行包含一个正整数 nn,表示积木数量。

第二行包含一个长度为 nn 的字符串 a1a2ana_1 a_2 \ldots a_n,其中 aia_i 为字母 B\texttt{B}S\texttt{S}C\texttt{C},分别表示第 ii 块积木的颜色(B\texttt{B} 为白色,S\texttt{S} 为灰色,C\texttt{C} 为黑色)。

输出格式

输出一行:若无法从任何连续积木段建满足要求的塔,输出 NIE;否则,输出一个整数,表示满足 Bitoni 要求的最长连续积木段的积木数。

9
CBBSSBCSC
6
5
BBBBC
5

提示

样例 1 解释

Bitoni 可选长度为 66 的积木段 BSSBCS,搭建灰塔(33 块)、白塔(22 块)、黑塔(11 块)。

附加样例

  1. n=2500n=2500,积木序列为 $\texttt{B}^{1248} \texttt{C}\underline{\texttt{SB}^{1250}}$(Bk\texttt{B}^{k} 表示 B 重复 kk 次),最长可选段已标出。
  2. n=1000000n=1000000,积木序列为 BSCBSCBSC...BSCBSCB\texttt{BSCBSCBSC...BSCBSCB},答案 NIE

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 n2500n \leq 2500 3030
22 n1000000n \leq 1000000 7070