#3637. 模拟十临阵换招 (scissors)
模拟十临阵换招 (scissors)
临阵换招 (scissors)
题目描述
一场比赛包含连续 局石头剪刀布。对手已经公布了每一局将要出的手势。
参赛者在第一局开始前选择一个手势。在之后的比赛中,他最多可以改变 次手势;每次改变后会一直使用新手势,直到再次改变。
手势用以下字符表示:
- H 表示石头;
- P 表示布;
- S 表示剪刀。
石头胜剪刀,剪刀胜布,布胜石头。平局和失败都不得分。 求参赛者最多能赢多少局。
输入格式
在文件 scissors.in 中读入。
第一行输入两个整数 。
接下来 行,每行输入一个字符,表示对手在对应一局中出的手势。
输出格式
在文件 scissors.out 中输出。
输出一个整数,表示最多能赢的局数。
样例
样例输入 #1
4 1
P
S
S
S
样例输出 #1
4
样例输入 #2
5 0
H
S
P
H
H
样例输出 #2
3
样例输入 #3
1 0
S
样例输出 #3
1
样例 1 解释: 第一局使用剪刀获胜,之后改成石头,可以赢下剩余三局,恰好改变一次手势。
样例 2 解释: 不允许改变手势时,始终使用布可以赢下对手出石头的三局。
数据范围
对于全部数据:
| 测试点 | 分值 | 特殊限制 |
|---|---|---|
| 1 ~ 5 | 50 | |
| 6 ~ 10 | 无特殊限制 |
相关
在下列比赛中: