Xoá ký tự nhị phân
Đề bài
Mô tả
Cho một xâu nhị phân chỉ gồm các ký tự '0' và '1'.
Bạn được phép chọn một số nguyên () và một dãy vị trí thoả mãn hai điều kiện:
- ;
- với mọi từ đến (tức là không có hai vị trí nào trong dãy đứng kề nhau).
Sau đó xoá các ký tự tại những vị trí khỏi , rồi nối các ký tự còn lại theo đúng thứ tự ban đầu để được xâu .
Xâu được gọi là đã sắp xếp nếu với mọi , nghĩa là toàn bộ ký tự '0' đứng trước toàn bộ ký tự '1'.
Cũng có thể không xoá gì (khi đó ). Hãy xác định xem có tồn tại cách chọn dãy vị trí (không bắt buộc phải xoá) để xâu đã sắp xếp hay không.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số bộ dữ liệu.
- Mỗi bộ dữ liệu gồm một dòng chứa xâu .
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra YES nếu tồn tại cách chọn để xâu thu được đã sắp xếp, ngược lại in ra NO.
Ràng buộc
- Mỗi ký tự của là '0' hoặc '1'.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 10101011011 0000 11111 110 1100 |
YES YES YES YES NO |
Bộ 1: chọn các vị trí , còn lại "0011111" đã sắp xếp. Bộ 2 và 3: xâu đã sắp xếp sẵn. Bộ 4: xoá vị trí , còn "11". Bộ 5: không có cách nào. |
| 8 01 10 00 11 010 101 0110 1001 |
YES YES YES YES YES YES YES YES |
Mọi xâu ở đây đều có thể biến đổi về dạng đã sắp xếp: các xâu không chứa đồng thời một cặp "11" đứng trước một cặp "00". |
Bình luận