#NK202506G. 转身
转身
题目描述
在一条数轴上有 个人,位置为 ,每个人面朝左()或右()。给定长度为 的字符串 (仅包含字符 和 ),表示每个人的初始朝向:若 则第 个人面朝左,若 则面朝右。
在每个离散时刻,同时对所有满足“面对面”的相邻对进行翻转:若在某一时刻位置 的人面朝右()且位置 的人面朝左(),即出现子串 ,则在该步结束时这两个人同时转身( 变为 , 变为 )。所有判断基于该步开始时的状态并并发更新。
当字符串中不再包含子串 (即不存在相邻面对面的人)时,过程停止。问从初始状态到稳定状态所需的步骤数(步数为非负整数)。
此外有 次修改操作。每次给出一个索引 (),表示把第 个人的初始朝向翻转()。每次修改后,重新计算并输出所需步数
输入格式
第一行包含两个整数 和 : 第二行包含长度为 的字符串 ,仅含字符 和 ,表示初始朝向(位置索引从 到 )。
接下来 行,每行包含一个整数 (),表示翻转位置 的字符(基于上一次修改后的字符串)。
输出格式
输出 行。第 行为在应用第 次修改后的初始字符串出发,到达稳定状态所需的步骤数(非负整数)。
输入输出样例 #1
输入 #1
5 5
LRLRL
5
1
3
4
3
输出 #1
1
2
0
3
3
输入输出样例 #2
输入 #2
5 5
RLLLL
1
2
3
4
5
输出 #2
0
3
3
3
0