#YDRG011C. 括号串查重

括号串查重

题目描述

S,TS,T 是由左括号"(",和右括号")"构成的字符串。

我们定义两个字符串 S,TS,T 的查重度为满足要求的最长字符串 CC 的长度。

CC 同时是 S,TS,T 的子序列,并且是括号串。

通过删除任意位置任意个字符(含零个),按顺序连接剩余部分得到的字符串称为原字符串的子序列。

我们定义满足以下条件的字符串为括号串。

1.空串是括号串。

2.如果 AA 是括号串,(A)(A) 是括号串。

3.如果 A,BA,B 都是括号串,ABAB 是括号串。

输入格式

输入一行两个整数 n,mn,m 分别表示 S,TS,T 的长度。

接下来两行分别是字符串 S,TS,T

输出格式

一行一个整数表示两个字符串的查重度。

输入输出样例 #1

输入 #1

10 12
(()())(())
(()(()))()()

输出 #1

8

输入输出样例 #2

输入 #2

2 2
()
)(

输出 #2

0

说明/提示

样例一:最长公共子括号串是 "(()())()" 。

对于 30%30\% 数据,n,m20n,m \le 20

对于另外 30%30\% 数据,m20m \le 20

对于全部数据,1n,m2001 \le n,m \le 200