#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
#define maxn 5000006
using namespace std;
int l[maxn] , r[maxn] , c[maxn] , lensum;
char s[maxn];
inline bool cmp(const int &a,const int &b)
{
if ((l[a] >= r[a]) != (l[b] >= r[b])) return ((l[a] >= r[a]) == 1 );
if ((l[a] >= r[a])) return r[a] < r[b];
return l[a] > l[b];
}
int main()
{
int T , n;
scanf("%d",&T);
for(;T--;)
{
int tsum=0;lensum = 0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
l[i] = r[i] = 0;
scanf("%s",s);
int len = strlen(s);
lensum+=len;
for(int j=0;j<len;j++)
{
if(s[j] == '(') l[i]++;
else
if(l[i]) l[i]--;
else r[i]++;
}
tsum+=l[i] - r[i];
c[i] = i;
}
sort(c+1,c+1+n,cmp);
int sum=0 , Min=0;
for(int i=1,u;i<=n;i++)
{
u = c[i];
Min = min(Min , sum - min(l[u] , r[u]) - (r[u] > l[u]) * (r[u] - l[u]));
sum += l[u] - r[u];
}
printf("%d\n",lensum - tsum + 2 * Min);
}
}
HDU 6299
猜你喜欢
转载自blog.csdn.net/qq_35950004/article/details/81182538
今日推荐
周排行