#HSGHNTHPT042006. Xóa đoạn ngoặc (Delete Bracket Segment)

Xóa đoạn ngoặc (Delete Bracket Segment)

Xóa đoạn ngoặc (Delete Bracket Segment)

Nguồn: Sở Giáo dục và Đào tạo Hà Nội — Kỳ thi chọn HSG thành phố và chọn đội tuyển HSG dự thi Olympic quốc gia các môn văn hóa, lớp 12 THPT năm học 2026–2027, môn Tin học (Bảng A)

Phiên bản: Phước Hưng OJ Extended

Đề bài

Một chuỗi ngoặc đúng được định nghĩa như sau:

  • Chuỗi rỗng là một chuỗi ngoặc đúng.
  • Nếu XX là một chuỗi ngoặc đúng thì (X)(X) cũng là một chuỗi ngoặc đúng.
  • Nếu XX và YY là hai chuỗi ngoặc đúng thì XYXY cũng là một chuỗi ngoặc đúng.

Cho chuỗi SS có độ dài NN, chỉ gồm hai ký tự ( và ).

Chọn hai số nguyên LL và RR thỏa mãn

1≤L≤R≤N,1 \le L \le R \le N,

sau đó xóa toàn bộ các ký tự từ vị trí thứ LL đến vị trí thứ RR của chuỗi SS.

Hãy đếm số cách chọn cặp (L,R)(L,R) sao cho chuỗi còn lại sau khi xóa là một chuỗi ngoặc đúng.

Input

  • Dòng đầu tiên chứa số nguyên dương NN.
  • Dòng thứ hai chứa chuỗi SS gồm đúng NN ký tự ( và ).

Output

In ra một số nguyên duy nhất là số cách chọn (L,R)(L,R) thỏa mãn yêu cầu.

Subtask

  • Subtask 1 — 20 điểm: 1≤N≤1001 \le N \le 100.
  • Subtask 2 — 30 điểm: 1≤N≤30001 \le N \le 3000.
  • Subtask 3 — 50 điểm: 1≤N≤1051 \le N \le 10^5.

Ví dụ

Ví dụ 1

Input

5
())()

Output

6

Giải thích

Có 66 cách xóa thỏa mãn, tương ứng với các cặp (L,R)(L,R):

  • (1,5)(1,5): xóa toàn bộ chuỗi, còn chuỗi rỗng;
  • (1,3)(1,3): còn ();
  • (2,4)(2,4): còn ();
  • (3,5)(3,5): còn ();
  • (2,2)(2,2): còn ()();
  • (3,3)(3,3): còn ()().

Ví dụ 2

Input

4
(())

Output

2

Giải thích

Hai cách xóa thỏa mãn là:

  • (1,4)(1,4): xóa toàn bộ chuỗi, còn chuỗi rỗng;
  • (2,3)(2,3): còn ().