问题 3300 --括号串查重

3300: 括号串查重

时间限制: 1 Sec  内存限制: 256 MB
提交: 1  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

S,T是由左括号"(",和右括号")"构成的字符串。
我们定义两个字符串S,T的查重度为满足要求的最长字符串 C的长度。
C同时是S,T的子序列,并且是括号串。
通过删除任意位置任意个字符(含零个),按顺序连接剩余部分得到的字符串称为原字符串的子序列。我们定义满足以下条件的字符串为括号串。
1.空串是括号串。
2.如果A是括号串,(A)是括号串。
3.如果A,B都是括号串,AB是括号串。

输入

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

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

输出

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

样例输入

样例1
10 12
(()())(())
(()(()))()()
样例2
2 2
()
)(

样例输出

样例1
8
样例2
0

提示


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



对于30%数据,n,m<=20 。 



对于另外30%数据,m<=20 。



对于全部数据,1<=n,m<=200 。 

来源

[提交][状态]