Thứ tự dãy ngoặc

Xem dạng PDF

Gửi bài giải

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

Nguồn bài:
Từ một bài của thầy Đỗ Đức Đông
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Dãy ngoặc đúng được định nghĩa như sau:

  • Biểu thức rỗng là biểu thức ngoặc đúng có bậc bằng ~0~.
  • Nếu ~A~ là biểu thức ngoặc đúng có bậc bằng ~k~ thì ~(A)~, ~[A]~, ~\{A\}~ cũng là biểu thức ngoặc đúng có bậc ~k + 1~.
  • Nếu ~A~ và ~B~ tương ứng là hai biểu thức ngoặc đúng có bậc là ~k_A, k_B~ thì ~AB~ cũng là một biểu thức ngoặc đúng có bậc bằng ~max(k_A, k_B)~.

Ví dụ "()[()]" là một biểu thức ngoặc đúng có bậc bằng ~2~.

Với hai số ~n~, ~k~ người ta tiến hành tạo ra tất cả các biểu thức ngoặc đúng có độ dài đúng bằng ~n~ và có bậc không quá ~k~. Sắp xếp các biểu thức ngoặc này theo thứ tự từ điển, chú ý: '(' ~<~ ')' ~<~ '[' ~<~ ']' ~<~ '{' ~<~ '}'.

Yêu cầu: Cho ~n~, ~k~ và ~S~ là một biểu thức ngoặc đúng độ dài ~n~ và có bậc không quá ~k~, hãy tìm thứ tự của ~S~.

Input

  • Dòng đầu chứa hai số nguyên ~n~, ~k~.
  • Dòng thứ hai chứa xâu ~S~.

Output

  • Một dòng duy nhất chứa một số nguyên là thứ tự của biểu thức ngoặc đúng ~S~.

Giới hạn

  • Trong ~10\%~ test đầu tiên: ~n~, ~k \le 10~.
  • Trong ~20\%~ test tiếp theo: ~n \le 20~, ~k \le 5~.
  • Trong ~30\%~ test tiếp theo: ~n \le 100~, ~k \le 5~.
  • Trong ~40\%~ test còn lại: ~n~, ~k \le 100~.

  • ~n~ chẵn

  • ~2 \times k \le n~

Sample Input

6 2
(()){}

Sample Output

4

Note

  1. "(()())"
  2. "(())()"
  3. "(())[]"
  4. "(()){}"

Bình luận

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



  • -2
    luandangduc  đã bình luận lúc 27, Tháng 5, 2021, 6:41

    Trong phần sample cho mình hỏi là các với n, k là 6 và 2 thì [[]][] hoặc 1 số bộ tương tự tại sao lại không được tính?


    • 11
      I_love_Hoang_Yen  đã bình luận lúc 27, Tháng 5, 2021, 16:29

      Trong sample chỉ in ra 4 bộ có thứ tự từ điển nhỏ nhất (do kết quả test đó bằng 4). Các dãy ngoặc [[]][] hoặc tương tự vẫn hợp lệ, và có thứ tự từ điển lớn hơn.