题号:NC263831
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
注:此版本为本问题的hard(困难版),与easy(简单版)不同的是,hard有四种操作。
众所周知,通常的代码编辑器(如当前页面右侧的牛客在线编辑器)都比较智能。
如果您输入一串括号串,例如:
)
其中的

代表鼠标光标。
此时如果按下键盘中的

键,整个括号都会被删掉,也就是说括号串会变成

,只包含鼠标光标。
但是如果按下键盘中的

键,那么则只会删除括号的右侧部分,也就是说括号串会变为

。
但如果鼠标光标不处于一个匹配的括号串中间,例如:
此时按下

键,括号会变为

。
此时按下

键,由于光标右侧没有括号,因此括号不会发生变化。
类似的,如果括号串为:
)
。
此时按下

键,由于鼠标光标左侧没有括号,因此括号不会发生变化。
此时按下

键,括号会变为:
)
。
除此之外,小苯还会按下键盘中的

和

键以移动光标。
例如括号串为
(I))
,此时小苯按下左移键

一次,光标就会左移一次进而使得括号变为:
I())
。同理右移也是类似的。
但特别的,如果光标已经在括号串最左侧,此时按下左移键,括号串不会发生变化;同理如果光标位于括号串最右侧时按下右移键,括号串依然不会发生变化。
问题:现在小苯给了你一个长度为

的括号串,并且保证其中
恰好出现了一个 
字符表示鼠标光标。他想知道,在

次指定的操作后,括号串最终会是什么样子,请你帮帮他吧。
输入描述:
输入包含若干行。
第一行两个数字
,分别表示括号串的长度和操作次数。
第二行输入一行字符串表示题目所述的括号串,保证字符串仅含有:"(, ), I"(大写的字母 i )三种字符之一,且 I 字符出现且仅出现一次。。
接下来
行,每行输入一个字符串代表删除操作,保证字符串一定是:
,
,<- 和 -> 中的一种。
输出描述:
输出包含一行一个字符串,表示括号串最终的样子。
示例1
输入
复制
10 5
((()(I))((
backspace
backspace
delete
<-
<-
示例2
输入
复制
5 3
((I))
backspace
backspace
->
备注:
如果无法理解题意,可以用右侧的编辑器和您的键盘进行验证。