trang chủ / đề bài / hn_hsg12_26_d

Xóa đoạn ngoặc

Đề bài

Mô tả

Định nghĩa chuỗi ngoặc đúng:

  • Chuỗi rỗng là chuỗi ngoặc đúng;
  • Nếu X là chuỗi ngoặc đúng thì (X) cũng là chuỗi ngoặc đúng;
  • Nếu X và Y là hai chuỗi ngoặc đúng thì XY cũng là chuỗi ngoặc đúng.

Ví dụ:

  • Chuỗi ngoặc đúng: "", "()", "(())", "()()", "(())()()", ...;
  • Chuỗi ngoặc không đúng: "(", "()(", "())(", ")()(", ...

Cho chuỗi S có độ dài N, chỉ gồm hai loại ký tự '(' và ')'. Chọn hai số nguyên dương L và R (1≤L≤R≤N), xoá tất cả các ký tự từ vị trí thứ L đến vị trí thứ R của chuỗi S.

Ví dụ: S= "(())(())". Chọn L=3 và R=6; đoạn cần xoá là "))((" (từ vị trí 3 đến vị trí 6). Chuỗi S sau khi xoá: S= "(())".

Yêu cầu: Hãy đếm số cách chọn L,R để chuỗi sau khi xoá là một chuỗi ngoặc đúng.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương N (1≤N≤105);
  • Dòng thứ hai chứa xâu S gồm N ký tự '(' và ')'.

Dữ liệu ra

Một số nguyên dương là kết quả bài toán.

Ràng buộc

  • 1≤N≤105
  • S chỉ gồm các ký tự '(' và ')'

Subtasks

  • Subtask 1 (30% số điểm): N≤200.
  • Subtask 2 (30% số điểm): Chuỗi ban đầu là chuỗi ngoặc đúng.
  • Subtask 3 (20% số điểm): N≤2000.
  • Subtask 4 (20% số điểm): Không có giới hạn gì thêm.

Ví dụ

Input Output Giải thích
5
())()
6 Các cách xoá thoả mãn: L=1,R=5: S= ""; L=1,R=3: S= "()"; L=2,R=4: S= "()"; L=3,R=5: S= "()"; L=2,R=2: S= "()()"; L=3,R=3: S= "()()".
4
(())
2 Các cách xoá thoả mãn: L=1,R=4: S= ""; L=2,R=3: S= "()".

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0