#P0905. 规则括号序列的删除

规则括号序列的删除

问题背景

一个 规则的括号序列 的定义如下:

  • 空串是一个规则的括号序列;
  • 如果在字符串 sstt 都是规则的括号序列,则字符串 stst(即字符串 sstt 拼接在一起)也是一个规则的括号序列;
  • 如果字符串 ss 是规则的括号序列,则字符串 (s)(s) 也是一个规则的括号序列。

比如:

  • 字符串 ()()()(())()(()(()))(()) 都是规则的括号序列;
  • 字符串 )(()))(()(())()))))(((( 都不是规则的括号序列。

题目描述

汪老师开发了一款文本编辑器软件,称其为“三王编辑器”。三王编辑器中目前存在一行长度为 nn 的字符串 ss,并且字符串 ss 是一个规则的括号序列。

因为字符串 ss 是一个规则的括号序列,所以每一个字符都有一个与其配对的字符。例如,在字符串 (()(())) 中:

  • 第一个括号与第八个括号配对;
  • 第二个括号与第三个括号配对;
  • 第四个括号与第七个括号配对;
  • 第五个括号与第六个括号配对。

在编辑器中还存在一个光标。初始时光标指向字符串 ss 中的第 pp 个字符。

然后你会接受到一个的指令,这个指令表示为一串长度为 mm 的字符串,你需要从前往后执行这个指令(字符串中每个字符对应一个指令,你需要依次执行它们),指令包含如下三种类型:

  • L:将光标向左移动一个位置,
  • R:将光标向右移动一个位置,
  • D:删除光标所在位置的括号,删除其配对的括号以及它们之间的所有括号(即删除光标所在位置的括号和其配对的括号之间的子串)。

在操作 D 之后,光标移动到右边最近的括号(当然,是未删除的括号中的一个)。如果没有这样的括号(即删除了规则括号序列的后缀),那么光标将移动到左边最近的括号(当然,是未删除的括号中的一个)。

下面有几张图片说明了操作 D 的几种用法。

所有不正确的操作(将光标移动到规则的括号序列的末尾之外,删除整个字符串等)都不受三王编辑器的支持。

请你输出执行完指令之后编辑器中剩下的字符串。

输入格式

第一行,三个整数 n,m,pn, m, p,分别表示规则括号序列的长度,操作序列的长度以及初始时光标所在的位置(2n5105,1m5105,1pn2 \le n \le 5 \cdot 10^5, 1 \le m \le 5 \cdot 10^5, 1 \le p \le n)。

第二行,一个长度为 nn 的字符串 ss。字符串 ss 是一个规则的括号序列。

第三行,一个长度为 mm 的字符串,字符串由 LRD 构成,表示操作序列。

输出格式

输出一行,包含一个字符串,表示最终剩下来的字符串。

样例

8 4 5
(())()()
RDLD
()
12 5 3
((()())(()))
RRDLD
(()(()))
8 8 8
(())()()
LLLLLLDD
()()

说明/提示

样例 1 解释

在样例 1 中,光标最初位于位置 55。考虑编辑器的操作:

  1. 命令 R — 光标向右移动到位置6;
  2. 命令 D — 从位置 55 到位置 66 的括号被删除。之后字符串变为 (())(),光标位于位置 55
  3. 命令 L — 光标向左移动到位置 44
  4. 命令 D — 从位置 11 到位置 44 的括号被删除。之后字符串变为 (),光标位于位置 11

因此,答案等于 ()

数据规模与约定

  • 对于 50%50\% 的数据,n,m5000n, m \le 5000
  • 对于 100%100\% 的数据,2n5105,1m5105,1pn2 \le n \le 5 \cdot 10^5, 1 \le m \le 5 \cdot 10^5, 1 \le p \le n