#P1664. Bileo and Bracket Swapping
Bileo and Bracket Swapping
背景
特别适合初学者,^_^
题目描述
在荒野深处,Bileo 和 Jily 发现了两个由括号组成的序列。
每个序列都包含某种逻辑结构,但它们本身不一定是合法括号序列。
他们发现,通过在两个序列之间交换括号,就有可能修复它们。
他们希望判断,是否可以通过交换操作,使两个序列都变成合法括号序列。
合法括号序列是指只由 ( 和 ) 组成,并且可以通过在其中插入若干个 1 和 +,变成一个合法数学表达式的序列。
例如,序列 ()(()()) 是合法括号序列,而 ())(( 和 (() 不是合法括号序列。
给定两个长度均为 的括号序列 和 ,其中 为偶数。
你可以进行任意次操作,每次操作如下:
选择一个位置 ,满足:
然后交换 和 。
请判断,是否可以通过若干次操作,使得 和 都变成合法括号序列。
格式
输入
每个测试点包含多组测试数据。
第一行包含一个整数 ,表示测试数据组数。
接下来是每组测试数据的描述。
每组测试数据第一行包含一个偶数 ,表示字符串 和 的长度。
第二行包含一个长度为 的括号序列 ,只由字符 ( 和 ) 组成。
第三行包含一个长度为 的括号序列 ,只由字符 ( 和 ) 组成。
保证所有测试数据中 的总和不超过:
输出
对于每组测试数据,如果可以通过若干次操作,使两个序列都变成合法括号序列,输出 YES。
否则输出 NO。
样例
7
2
()
()
4
))((
(())
4
((((
))))
4
()()
(())
6
(((())
()()))
8
()()()()
(((())))
4
((((
((((
YES
NO
NO
YES
YES
YES
NO
限制
2秒,512MiB,每个测试点。
相关
在下列比赛中: