CF1598F.RBS

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

A bracket sequence is a string containing only characters "(" and ")". A regular bracket sequence (or, shortly, an RBS) is a bracket sequence that can be transformed into a correct arithmetic expression by inserting characters "1" and "+" between the original characters of the sequence. For example:

  • bracket sequences "()()" and "(())" are regular (the resulting expressions are: "(1)+(1)" and "((1+1)+1)");
  • bracket sequences ")(", "(" and ")" are not.

Let's denote the concatenation of two strings xx and yy as x+yx+y . For example, "()()" ++ ")(" == "()())(".

You are given nn bracket sequences s1,s2,,sns_1, s_2, \dots, s_n . You can rearrange them in any order (you can rearrange only the strings themselves, but not the characters in them).

Your task is to rearrange the strings in such a way that the string s1+s2++sns_1 + s_2 + \dots + s_n has as many non-empty prefixes that are RBS as possible.

输入格式

The first line contains a single integer nn ( 1n201 \le n \le 20 ).

Then nn lines follow, the ii -th of them contains sis_i — a bracket sequence (a string consisting of characters "(" and/or ")". All sequences sis_i are non-empty, their total length does not exceed 41054 \cdot 10^5 .

输出格式

Print one integer — the maximum number of non-empty prefixes that are RBS for the string s1+s2++sns_1 + s_2 + \dots + s_n , if the strings s1,s2,,sns_1, s_2, \dots, s_n can be rearranged arbitrarily.

输入输出样例

  • 输入#1

    2
    (
    )

    输出#1

    1
  • 输入#2

    4
    ()()())
    (
    (
    )

    输出#2

    4
  • 输入#3

    1
    (())

    输出#3

    1
  • 输入#4

    1
    )(()

    输出#4

    0

说明/提示

In the first example, you can concatenate the strings as follows: "(" ++ ")" == "()", the resulting string will have one prefix, that is an RBS: "()".

In the second example, you can concatenate the strings as follows: "(" ++ ")" ++ "()()())" ++ "(" == "()()()())(", the resulting string will have four prefixes that are RBS: "()", "()()", "()()()", "()()()()".

The third and the fourth examples contain only one string each, so the order is fixed.

首页