QOJ.ac

QOJ

时间限制: 10 s 内存限制: 128 MB 总分: 100

#8797. 三座塔 2

统计

Bythony 喜欢玩耍。在他的房间里,他排列了一行 $n$ 个彩色积木。每个积木要么是白色、灰色,要么是黑色。Bythony 想要在积木行中选取一个连续的片段,并用其中的积木建造塔。

Bythony 打算建造三座单色塔:一座由白色积木组成,一座由灰色积木组成,一座由黑色积木组成。注意,一座塔可以由零个积木组成,例如,如果片段中没有某种颜色的积木。Bythony 希望满足以下两个条件:第一,塔的高度(即它们所包含的积木数量)必须各不相同。第二,Bythony 希望利用他所选片段中的所有积木。请编写一个程序,帮助他确定满足这些要求的最长连续积木片段的长度。

输入格式

输入的第一行包含一个整数 $n$,表示积木的数量。下一行包含一个长度为 $n$ 的字符串 $a_1a_2 \dots a_n$,其中每个 $a_i$ 是字符 B、S 或 C 中的一个,表示行中第 $i$ 个积木的颜色:B 代表白色(biały),S 代表灰色(szary),C 代表黑色(czarny)。

输出格式

输出的第一行也是唯一一行,应包含单词 NIE(波兰语中的“不”),如果不存在满足规则的片段;或者输出一个整数,等于满足该构造要求的最长片段的积木数量。

样例

输入格式 1

9
CBBSSBCSC

输出格式 1

6

说明

Bythony 可以选择一个包含 6 个积木的片段:BSSBCS,从中他可以建造一座 3 个积木高的灰色塔、一座 2 个积木高的白色塔和一座 1 个积木高的黑色塔。

输入格式 2

5
BBBBC

输出格式 2

5

说明

Bythony 可以利用所有积木,建造一座 4 个积木高的白色塔、一座 1 个积木高的黑色塔和一座 0 个积木高的灰色塔。

样例评分测试

  • 1ocen: $n = 2500$,积木排列为:$B^{1248}CSB^{1250}$(字符串 $B^k$ 表示字符 B 重复 $k$ 次);Bythony 可以选择的最长片段已下划线标出。
  • 2ocen: $n = 1\,000\,000$,积木排列为周期性字符串:BSCBSCBSC...BSCBSCB;答案为 NIE。

子任务

测试集由以下子任务组成。每个子任务内可能包含多个测试点。

子任务 数据范围 分值
1 $n \le 2500$ 30
2 $n \le 1\,000\,000$ 70

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.