Chi 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 YES nếu xâu ~S~ là xâu nhị phân hoàn hảo, ngược lại in ra NO.

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

Hãy đọc nội quy trước khi bình luận.


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