[Buổi 15][Ngăn xếp][HW] Bài 1: Khử giao cắt tín hiệu liền kề
Khử giao cắt tín hiệu liền kề
Bối cảnh và bài toán
Một tuyến truyền có chuỗi ký hiệu + và -. Mỗi khi hai ký hiệu giống nhau đứng cạnh nhau, hệ thống có thể khử đồng thời cặp đó; sau khi khử, hai phần còn lại nối lại và có thể tạo ra cặp mới. Quá trình tiếp tục cho đến khi không còn cặp nào khử được.
Yêu cầu
Xác định liệu toàn bộ chuỗi có thể bị khử hết hay không.
Input
- Một dòng chứa chuỗi
s.
Output
In YES nếu chuỗi có thể khử hết, ngược lại in NO.
Ràng buộc
1 <= |s| <= 10^5s[i] là+hoặc-``
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 20% | |s| <= 100 | 01–04 |
| S2 | 30% | |s| <= 5000 | 05–10 |
| S3 | 50% | Không có ràng buộc bổ sung | 11–20 |
Ví dụ 1
Input
-++-
Output
YES
Giải thích. Khử ++ tạo --, sau đó khử tiếp.
Ví dụ 2
Input
+-
Output
NO
Giải thích. Hai ký hiệu khác nhau nên không có phép khử nào.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M05-B15-HW01 |
| Buổi | B15 |
| Loại bài | HOMEWORK |
| Mức độ khó | Trung bình (Medium) |
| Thời gian làm bài khuyến nghị | 35 phút |
| Time limit | 1 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++11 trở lên |
Nguồn: Phỏng theo Codeforces 343B – Alternating Current.
Comments