Xâu nhị phân

View as PDF

Submit solution

Points: 100.00 (partial)
Time limit: 1.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Xâu nhị phân là xâu chỉ chứa ~0~ và ~1~. Các xâu nhị phân có độ dài bằng ~n~ có ~2n~ xâu nhị phân. Ví dụ ~n=3~ ta có các xâu nhị phân được liệt kê theo thứ tự từ điển như sau ~000, 001, 010, 011, 100, 101, 110, 111~. Trong đó ~001~ là xâu kế tiếp của xâu 000 hay 101 là xâu kế tiếp của xâu ~100~.

Yêu cầu: Cho xâu nhị phân ~S~ độ dài ~n~ .Tìm xâu nhị phân kế tiếp của ~S~ trong từ điển.

Dữ liệu vào có cấu trúc như sau:

  • Dòng đầu tiên ghi số tự nhiên ~N~ (~n <1000000~).
  • Dòng hai ghi xâu S gồm các kí tự ~0, 1~.

Kết quả ghi ra xâu nhị phân kế tiếp của ~S~ theo thứ tự trong từ điển. Nếu không có ghi ~-1~.

Ví dụ:
INPUT
5
00100
OUTPUT
00101

Ràng buộc:

  • 70% test tương ứng với 50% số điểm có ~n ≤ 64~.
  • 30% test tương ứng với 50% số điểm có ~n ≤ 1000000~.

Comments

Please read the guidelines before commenting.


There are no comments at the moment.