D. 管道取珠

    传统题 1000ms 256MiB

管道取珠

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

样例文件

题目描述

管道取珠是小 X 很喜欢的一款游戏。在本题中,我们将考虑该游戏的一个简单改版。游戏画面如图 1 所示:

1图 1

游戏初始时,左侧管道有一定数量的小球(有红、黄、绿三种颜色),而右侧输出管道为空。每一次操作,游戏者可以任意选择右侧的某一个输出管道,将左侧管道中最右端的一个球推入到右侧所选择的输出管道中。

例如:对于图 1 中的情形,我们将左侧管道中最右端的一个球推入到右侧的上输出管道中,将得到图 2 所示的情况。

2图 2

对于右侧每一个输出管道,当每一次有球到达时,相应管道便会向外喷吐若干个游戏币。喷吐游戏币的个数是如下计算的:刚刚有球到达的输出管道对比最近到达的三个球(包含刚刚到达的这个球。如果该管道一共到达的球不足三个,则全部进行对比。假设要对比的球的个数为 x 个,则 x=min(3,该输出管道中的球的个数) ),这 x 个球包含几种颜色,该管道就会喷吐出几个游戏币。即:如果这 x 个球颜色均相同,则该管道会喷吐出 1 个游戏币;如果这 x 个球包含两种颜色,则该管道会喷吐出 2 个游戏币;如果这 x 个球包含三种颜色,则该管道会喷吐出 3 个游戏币。

爱好数学的小 X 知道,不同的操作方式,可能会使得管道喷吐出的游戏币个数不同。他想知道,如何操作,可以使得两个输出管道喷吐出的游戏币总数量最多?

你能帮助他计算这个值么?

输入格式

输入文件中的第一行为一个整数 nn,表示初始时左侧管道中球的数目。

第二行为一个长度为 nn 的字符串,表示初始时左侧管道中从左到右球的颜色,仅包含 R, Y, G 三种字符。其中:R 表示红色球,Y 表示黄色球,G 表示绿色球。

输出格式

输出一个整数,即为结果。

输入样例

6
GYYRGR

输出样例

12

样例解释

假设右侧上管道为 UP,下管道为 DOWN,则可以如下分配球:

R 进管道 UP,喷吐出 1 个游戏币

G 进管道 UP,喷吐出 2 个游戏币

R 进管道 DOWN,喷吐出 1 个游戏币

Y 进管道 DOWN,喷吐出 2 个游戏币

Y 进管道 UP,喷吐出 3 个游戏币

G 进管道 DOWN,喷吐出 3 个游戏币

总和为 12.

数据范围

1 ≤ N ≤ 100 000

2026-02-26

未参加
状态
已结束
规则
OI
题目
4
开始于
2026-2-26 8:00
结束于
2026-2-26 12:00
持续时间
4 小时
主持人
参赛人数
17