神秘红绿灯
题目背景
有一处奇怪十字路口,乐柠兔和噜噜遇到了一盏“会循环变化”的交通灯。
交通灯只有三种颜色:
r:红色y:黄色g:绿色
它会按照固定顺序循环亮灯。
题目描述
交通灯的工作顺序由一个长度为 的字符串 给出:
- 第 秒亮
- 第 秒亮
- …
- 第 秒亮
- 第 秒又回到 ,之后不断重复
例如:若 ,则亮灯序列为:
r g g r y r g g r y ...
过马路规则
- 只有当灯为绿色
g时,乐柠兔才能过马路 - 一旦出现
g,可以立刻通过(不额外耗时) - 现在,乐柠兔只知道“当前看到的颜色是 ”,但不知道此刻对应的是周期中的第几秒
任务
对每个测试用例,求出一个最小的等待时间 ,使得:
无论当前处于周期中的哪个位置(只要当前颜色确实为 ),等待不超过 秒,一定能遇到一次绿色灯并过马路。
输入格式
第一行一个整数 (),表示测试用例组数。
每组测试用例:
- 第一行输入整数 与字符 (,),分别表示字符串长度与当前颜色。
- 第二行输入长度为 的字符串 ,仅由
r、y、g组成。
输出格式
对每组测试用例输出一行一个整数:
表示在最坏情况下,乐柠兔保证能过马路所需的最少等待秒数。
样例
样例输入
3
5 r
rggry
1 g
g
3 r
rrg
样例输出
3
0
2
样例说明
以 s="rggry" 且当前颜色为 r 为例:
当前为 r 可能对应字符串中的不同位置,距离下一次 g 的时间可能为 1 秒或 3 秒。为了“保证”一定等到 g,答案为最坏情况的 3。
数据范围与约定
- 保证
g一定在字符串 中出现 - 保证当前颜色 一定在字符串 中出现
- 所有测试用例的 之和不超过
| 子任务 | 分值 | 单组 范围 |
|---|---|---|
| 1 | 20 | |
| 2 | 40 | |
| 3 | 30 | |
| 4 | 10 |
相关
在下列比赛中:
京公网安备11010802045784号