Chọn ĐTQG Đồng Nai 2026 - Xâu ngoặc đúng

Xem dạng PDF

Gửi bài giải

Điểm: 55,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Cho số nguyên dương ~n~ và xâu ~S~ có ~2n~ kí tự, được đánh số từ ~1~ đến ~2n~, mỗi kí tự là dấu ngoặc mở '(' hoặc dấu ngoặc đóng ')'. Các kí tự trong xâu được chia thành ~n~ cặp, hai kí tự thuộc cùng một cặp không nhất thiết phải liên tiếp. Mỗi cặp cần xóa đi ~1~ kí tự sao cho ~n~ kí tự còn lại tạo thành xâu ngoặc đúng.

Xâu ngoặc đúng được định nghĩa như sau:

  • Xâu rỗng là một xâu ngoặc đúng.

  • Nếu ~A~ là một xâu ngoặc đúng thì ~(A)~ cũng là một xâu ngoặc đúng.

  • Nếu ~A~ và ~B~ là các xâu ngoặc đúng thì ~AB~ cũng là một xâu ngoặc đúng.

Yêu cầu: Hãy xác định xem có cách xóa sao cho xâu gồm ~n~ kí tự còn lại tạo thành xâu ngoặc đúng không?

Input

  • Dòng đầu tiên chứa số nguyên ~t~ ~(1 \le t \le 10^5)~ là số bộ dữ liệu, mỗi bộ dữ liệu gồm:

    • Dòng đầu chứa số nguyên ~n~ ~(1 \le n \le 10^5)~.

    • Dòng thứ hai chứa xâu ~S~ có ~2n~ kí tự.

    • ~n~ dòng tiếp theo, dòng thứ ~i~ chứa hai số nguyên ~a_i~ và ~b_i~ ~(1 \le a_i < b_i \le 2n)~ cho biết vị trí hai kí tự thuộc cặp thứ ~i~. Các giá trị ~a_1,b_1,a_2,b_2,\dots,a_n,b_n~ đôi một khác nhau.

Tổng các giá trị của ~n~ trong ~t~ bộ dữ liệu không vượt quá ~10^5~.

Output

Gồm ~t~ dòng, mỗi dòng là câu trả lời tương ứng với một bộ dữ liệu. Nếu tồn tại cách xóa để tạo thành xâu ngoặc đúng thì in ra "Yes", ngược lại in ra "No".

Scoring

Subtask Điểm Ràng buộc
1 ~10\%~ ~1 \le n \le 10; t \le 10~
2 ~30\%~ ~1 \le n \le 1000; t \le 1000~
3 ~60\%~ Không có giới hạn gì thêm

Sample Input 1

2
4
))))((((
2 7
5 8
1 6
3 4
4
(((())))
1 3
2 7
5 6
4 8

Sample Output 1

No
Yes

Notes

  • Trong bộ dữ liệu đầu tiên: không có phương án xóa theo yêu cầu của đề bài để được xâu ngoặc đúng.

  • Trong bộ dữ liệu thứ hai: Ta có cách thực hiện như sau để tạo thành xâu ngoặc đúng:

    • Cặp ~(1,3)~ xóa kí tự tại vị trí ~3~.

    • Cặp ~(2,7)~ xóa kí tự tại vị trí ~7~.

    • Cặp ~(5,6)~ xóa kí tự tại vị trí ~6~.

    • Cặp ~(4,8)~ xóa kí tự tại vị trí ~4~.

    Sau khi xóa xong, ~n~ kí tự còn lại là (()).


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.