Universal Cup Judging System

Universal Cup

시간 제한: 2 s 메모리 제한: 1024 MB 총점: 100 해킹 가능 ✓
통계

Yuki phát hiện rằng một dãy ngoặc đối xứng không thể là một dãy ngoặc cân bằng, vì vậy cô đã nghĩ ra một cách khác để định nghĩa dãy ngoặc đối xứng cân bằng.

Yuki định nghĩa dãy ngoặc đối xứng theo các quy tắc sau:

  • Xâu rỗng là một dãy ngoặc đối xứng.

  • ( và ) là các dãy ngoặc đối xứng.

  • Nếu dãy ngoặc $s$ là một dãy ngoặc đối xứng, thì $(s($ và $)s)$ cũng là các dãy ngoặc đối xứng.

Yuki định nghĩa dãy ngoặc cân bằng theo các quy tắc sau:

  • Xâu rỗng là một dãy ngoặc cân bằng.

  • Nếu dãy ngoặc $s$ là một dãy ngoặc cân bằng, thì $(s)$ cũng là một dãy ngoặc cân bằng.

  • Nếu các dãy ngoặc $s$ và $t$ đều là các dãy ngoặc cân bằng, thì $st$ (phép nối hai dãy ngoặc đó) là một dãy ngoặc cân bằng.

Với dãy ngoặc $s=s_1\ldots s_n$, Yuki định nghĩa $s$ là một dãy ngoặc đối xứng cân bằng khi và chỉ khi:

  • $s_2\ldots s_{n-1}$ là một dãy ngoặc đối xứng.

  • $s_1\ldots s_n$ là một dãy ngoặc cân bằng.

Cụ thể, xâu rỗng và () cũng là các dãy ngoặc đối xứng cân bằng.

Ví dụ, (())() và ()()(()()) là các dãy ngoặc đối xứng cân bằng, còn ((())) và ()()(()) thì không.

Bây giờ, Yuki có một dãy ngoặc $s$ độ dài $n$ và muốn tìm dãy con* dài nhất của $s$ là một dãy ngoặc đối xứng cân bằng. Tuy nhiên, Yuki không biết cách làm, nên bạn cần giúp cô tìm độ dài của dãy con dài nhất như vậy.

*: Dãy $a$ là dãy con của dãy $b$ khi và chỉ khi có thể thu được $a$ bằng cách xóa không hoặc nhiều phần tử khỏi $b$; cụ thể, dãy rỗng là dãy con của mọi dãy.

Dữ liệu vào

Bài toán có nhiều bộ kiểm thử.

Dòng đầu tiên chứa một số nguyên dương $t$ ($1\le t\le5000$), biểu thị số bộ kiểm thử.

Với mỗi bộ kiểm thử:

  • Dòng đầu tiên chứa một số nguyên dương $n$ ($1\le n\le5000$).

  • Dòng thứ hai chứa một dãy ngoặc $s$ độ dài $n$ ($s_i\in\{\texttt{(},\texttt{)}\}$).

Đảm bảo rằng tổng $n$ trên tất cả các bộ kiểm thử không vượt quá $10^4$.

Dữ liệu ra

Với mỗi bộ kiểm thử, in một dòng chứa một số nguyên biểu thị độ dài của dãy con dài nhất thỏa mãn điều kiện.

Ví dụ

Dữ liệu vào 1

3
5
(()((
7
)))((((
8
())(()()

Dữ liệu ra 1

2
0
6

Ghi chú

Với bộ kiểm thử thứ nhất:

  • Các dãy con dài nhất thỏa mãn điều kiện là $s_1s_3=\texttt{()}$ và $s_2s_3=\texttt{()}$, nên đáp án là 2.

Với bộ kiểm thử thứ hai:

  • Dãy con dài nhất thỏa mãn điều kiện là xâu rỗng, nên đáp án là 0.

Với bộ kiểm thử thứ ba:

  • Dãy con dài nhất thỏa mãn điều kiện là $s_1s_2s_4s_5s_6s_8=\texttt{()(())}$, nên đáp án là 6.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.