Dãy ngoặc đúng

Xem dạng PDF

Gửi bài giải

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

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Một dãy ngoặc đúng được định nghĩa như sau:

  • Xâu rỗng là 1 dãy ngoặc đúng.
  • Nếu ~A~ là 1 dãy ngoặc đúng thì ~(A)~ là 1 dãy ngoặc đúng.
  • Nếu ~A~ và ~B~ là dãy ngoặc đúng thì ~AB~ là 1 dãy ngoặc đúng. Cho dãy ngoặc ~S~ độ dài ~N~ và ~Q~ truy vấn biểu diễn bởi 2 số nguyên ~l~ và ~r~: Kiểm tra dãy ngoặc con ~S[l..r]~ có là dãy ngoặc đúng hay không?

Dữ liệu vào:

  • Dòng đầu tiên chứa 2 số nguyên dương ~N~ và ~Q~ (~1 ≤ N, Q ≤ 10^5~).

  • Dòng thứ hai chứa dãy ngoặc ~S~.

  • Trong ~Q~ dòng tiếp theo, mỗi dòng chứa một truy vấn.

Dữ liệu ra:

  • Với mỗi truy vấn, in trên một dòng "YES" nếu đúng, ngược lại in "NO".

Ví dụ:

INPUT

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

OUTPUT

YES
NO
YES

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.