CF2196D Double Bracket Sequence
Description
Given a string $ s $ of even length, consisting of the characters "(", ")", "\[" and "\]", which are brackets of two types (round and square).
We call a string $ t $ beautiful if it satisfies two conditions simultaneously:
- The subsequence of all round brackets forms a correct bracket sequence $ ^{\text{∗}} $ ;
- The subsequence of all square brackets forms a correct bracket sequence.
For example, the string "\[(\]\[)\[\]\]()" is beautiful, as the subsequence of all round brackets in it "()()" forms a correct bracket sequence and the subsequence of all square brackets in it "\[\]\[\[\]\]" forms a correct bracket sequence.
You would like to turn $ s $ into any beautiful string; for this, you can change the characters: in one operation, you can choose a position $ i $ , such that $ 1 \le i \le n $ and change the character $ s_{i} $ to any round or square bracket.
What is the minimum number of operations required to transform $ s $ into any beautiful string?
$ ^{\text{∗}} $ A bracket sequence is called correct if by inserting the symbols "+" and "1" into it, one can obtain a valid mathematical expression. For example, the sequences "(())()", "\[\]" and "(()(()))" are correct, while ")(", "\[\[\]" and "(()))(" are not.
Input Format
Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 10^4 $ ). The description of the test cases follows.
The first line of each test case contains one integer $ n $ ( $ 2 \le n \le 2 \cdot 10^{5} $ ) — the length of the string $ s $ . It is guaranteed that $ n $ is even.
The second line of each test case contains a string $ s $ of length $ n $ , consisting only of the characters "(", ")", "\[" and "\]".
It is guaranteed that the sum of $ n $ across all test cases does not exceed $ 2 \cdot 10^5 $
Output Format
For each test case, output a single integer — the answer to the problem.
Explanation/Hint
In the first test case, from $ s $ you can obtain "\[\]" by changing the second character.
In the second test case, from $ s $ , in $ 2 $ operations, you can obtain "\[\]\[\]", by changing the characters at positions $ 2 $ and $ 4 $ .
In the third test case, from $ s $ , in $ 2 $ operations, you can obtain "()\[\]", by changing the characters at positions $ 1 $ and $ 4 $ .
In the fourth test case, $ s $ is already beautiful, as it can be divided into the subsequences "()" and "\[\]".