#P1664. Bileo and Bracket Swapping

Bileo and Bracket Swapping

背景

特别适合初学者,^_^

题目描述

在荒野深处,Bileo 和 Jily 发现了两个由括号组成的序列。
每个序列都包含某种逻辑结构,但它们本身不一定是合法括号序列。
他们发现,通过在两个序列之间交换括号,就有可能修复它们。
他们希望判断,是否可以通过交换操作,使两个序列都变成合法括号序列。

合法括号序列是指只由 () 组成,并且可以通过在其中插入若干个 1+,变成一个合法数学表达式的序列。

例如,序列 ()(()()) 是合法括号序列,而 ())(((() 不是合法括号序列。

给定两个长度均为 nn 的括号序列 aabb,其中 nn 为偶数。

你可以进行任意次操作,每次操作如下:

选择一个位置 ii,满足:

1in1 \leq i \leq n

然后交换 aia_ibib_i

请判断,是否可以通过若干次操作,使得 aabb 都变成合法括号序列。

格式

输入

每个测试点包含多组测试数据。

第一行包含一个整数 tt,表示测试数据组数。

接下来是每组测试数据的描述。

每组测试数据第一行包含一个偶数 nn,表示字符串 aabb 的长度。

第二行包含一个长度为 nn 的括号序列 aa,只由字符 () 组成。

第三行包含一个长度为 nn 的括号序列 bb,只由字符 () 组成。

保证所有测试数据中 nn 的总和不超过:21052 \cdot 10^5

1t104 1 \leq t \leq 10^4

2n2105 2 \leq n \leq 2 \cdot 10^5

输出

对于每组测试数据,如果可以通过若干次操作,使两个序列都变成合法括号序列,输出 YES

否则输出 NO

样例

7
2
()
()
4
))((
(())
4
((((
))))
4
()()
(())
6
(((())
()()))
8
()()()()
(((())))
4
((((
((((
YES
NO
NO
YES
YES
YES
NO

限制

2秒,512MiB,每个测试点。