309286: CF1657C. Bracket Sequence Deletion

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Bracket Sequence Deletion

题意翻译

### 题目翻译 LBW 有一个长度为 $n$ 的由括号组成的字符串,他每次要选择一个前缀并将其从字符串中删除。 这个前缀至少要满足以下两点要求: + 这个前缀是一个合法括号序列。 + 此前缀是长度大于等于 $2$ 的回文串。 一直这样做,直到无法执行。 LBW 想知道最多能执行的次数与此时剩下的字符数。 ### 输入格式 **本题有多组数据。** 第一行,一个整数 $T$,表示有 $T$ 组测试数据。 对于每组测试数据: 第一行,一个整数 $n$,表示括号序列的长度。 第二行,一个字符串,表示括号序列。 ### 输出格式 对于每个测试数据,输出最多能执行的次数与此时剩下的字符数。 ### 数据范围 $1 \le T \le 10^4$ $1 \le n \le 5 \times 10^5$

题目描述

You are given a bracket sequence consisting of $ n $ characters '(' and/or )'. You perform several operations with it. During one operation, you choose the shortest prefix of this string (some amount of first characters of the string) that is good and remove it from the string. The prefix is considered good if one of the following two conditions is satisfied: - this prefix is a regular bracket sequence; - this prefix is a palindrome of length at least two. A bracket sequence is called regular if it is possible to obtain a correct arithmetic expression by inserting characters '+' and '1' into this sequence. For example, sequences (())(), () and (()(())) are regular, while )(, (() and (()))( are not. The bracket sequence is called palindrome if it reads the same back and forth. For example, the bracket sequences )), (( and )(() are palindromes, while bracket sequences (), )( and ))( are not palindromes. You stop performing the operations when it's not possible to find a good prefix. Your task is to find the number of operations you will perform on the given string and the number of remaining characters in the string. You have to answer $ t $ independent test cases.

输入输出格式

输入格式


The first line of the input contains one integer $ t $ ( $ 1 \le t \le 10^4 $ ) — the number of test cases. The next $ 2t $ lines describe test cases. The first line of the test case contains one integer $ n $ ( $ 1 \le n \le 5 \cdot 10^5 $ ) — the length of the bracket sequence. The second line of the test case contains $ n $ characters '(' and/or ')' — the bracket sequence itself. It is guaranteed that the sum of $ n $ over all test cases do not exceed $ 5 \cdot 10^5 $ ( $ \sum n \le 5 \cdot 10^5 $ ).

输出格式


For each test case, print two integers $ c $ and $ r $ — the number of operations you will perform on the given bracket sequence and the number of characters that remain in the string after performing all operations.

输入输出样例

输入样例 #1

5
2
()
3
())
4
((((
5
)((()
6
)((()(

输出样例 #1

1 0
1 1
2 0
1 0
1 1

Input

题意翻译

### 题目翻译 LBW 有一个长度为 $n$ 的由括号组成的字符串,他每次要选择一个前缀并将其从字符串中删除。 这个前缀至少要满足以下两点要求: + 这个前缀是一个合法括号序列。 + 此前缀是长度大于等于 $2$ 的回文串。 一直这样做,直到无法执行。 LBW 想知道最多能执行的次数与此时剩下的字符数。 ### 输入格式 **本题有多组数据。** 第一行,一个整数 $T$,表示有 $T$ 组测试数据。 对于每组测试数据: 第一行,一个整数 $n$,表示括号序列的长度。 第二行,一个字符串,表示括号序列。 ### 输出格式 对于每个测试数据,输出最多能执行的次数与此时剩下的字符数。 ### 数据范围 $1 \le T \le 10^4$ $1 \le n \le 5 \times 10^5$

加入题单

算法标签: