Bài 2
Xem dạng PDFChi tiết
Dạng bài
Ngôn ngữ cho phép
Assembly, AWK, C, C++, C++20, C++23, Go, Java, Kotlin, Pascal, Perl, PyPy, Python, Rust, Scratch, SED, Text
Điểm:
100,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
PERFECT.INP
Output:
PERFECT.OUT
Một xâu nhị phân được định nghĩa là hoàn hảo khi thỏa mãn đồng thời hai điều kiện sau:
- Số lượng ký tự ~1~ bằng số lượng ký tự ~0~.
- Xâu ban đầu là một dãy không giảm (tức là tất cả các ký tự ~0~ đều đứng trước tất cả các ký tự ~1~, xâu có dạng ~00...011...1~).
Cho một xâu nhị phân ~S~ gồm ~N~ ký tự. Bạn hãy kiểm tra xem xâu ~S~ có phải là xâu nhị phân hoàn hảo hay không.
Dữ liệu vào: Vào từ tệp văn bản PERFECT.INP:
- Gồm một dòng duy nhất chứa xâu nhị phân ~S~.
Kết quả: Ghi ra tệp văn bản PERFECT.OUT:
- In ra
YESnếu xâu ~S~ là xâu nhị phân hoàn hảo, ngược lại in raNO.
Ví dụ:
| PERFECT.INP | PERFECT.OUT |
|---|---|
| 0011 | YES |
| PERFECT.INP | PERFECT.OUT |
|---|---|
| 0101 | NO |
Giải thích ví dụ 1: Xâu 0011 có 2 số 0 và 2 số 1 (bằng nhau), đồng thời xếp tăng dần không giảm nên là xâu hoàn hảo.
Giải thích ví dụ 2: Xâu 0101 tuy có số lượng 0 và 1 bằng nhau nhưng không phải là dãy không giảm.
Ràng buộc dữ liệu:
- Subtask 1 (40% số điểm): Độ dài xâu ~1 \le N \le 100~.
- Subtask 2 (60% số điểm): Độ dài xâu ~1 \le N \le 10^6~.
Bình luận