[Buổi 15][Ngăn xếp][ADV] Bài 1: Đoạn ngoặc hợp lệ dài nhất
Đoạn ngoặc hợp lệ dài nhất
Bối cảnh và bài toán
Một bộ phân tích nhận chuỗi chỉ gồm ( và ). Cần tìm những đoạn liên tiếp tạo thành chuỗi ngoặc đúng. Hệ thống quan tâm tới độ dài lớn nhất và số đoạn có đúng độ dài lớn nhất đó.
Yêu cầu
In độ dài lớn nhất của một substring ngoặc hợp lệ và số substring đạt độ dài đó. Nếu không có substring hợp lệ không rỗng, in 0 1.
Input
- Một dòng chứa chuỗi
s.
Output
In hai số L C.
Ràng buộc
1 <= |s| <= 10^6s[i] là(hoặc)``
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 20% | |s| <= 2000 | 01–04 |
| S2 | 30% | |s| <= 10^5 | 05–10 |
| S3 | 50% | Không có ràng buộc bổ sung | 11–20 |
Ví dụ 1
Input
)((())))(()())
Output
6 2
Giải thích. Có hai đoạn hợp lệ dài 6: ((())) và (()()).
Ví dụ 2
Input
))(
Output
0 1
Giải thích. Không có cặp ngoặc hợp lệ; theo quy ước in 0 1.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M05-B15-ADV01 |
| Buổi | B15 |
| Loại bài | ADVANCED |
| Mức độ khó | Khó (Hard) |
| Thời gian làm bài khuyến nghị | 70 phút |
| Time limit | 2 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++11 trở lên |
| Yêu cầu bổ sung | Decision Note |
Nguồn: Phỏng theo Codeforces 5C – Longest Regular Bracket Sequence.
Comments