小红有一天翻出来一个旧手机,但是小红早已忘记这个手机的密码。
他只知道密码是一个排列,但他现在忘了具体密码是什么。于是他打开了密保:密保是一串01串,表示这个排列的前 i 项和的奇偶性了。现在,小红希望你能帮他还原出一个可能的密码。
排列的定义: 长度为 n 的数组, 1 到 n 都只出现了一次。
输入第一行一个正整数 n ,代表排列的大小。 输入第二行为一个长度为 n 的01串, 第 i 个字符为'1'代表排列的前i项和为奇数,'0'代表前 i 项和为偶数。
如果无解, 请输出 −1 。 否则输出一个合法的排列。有多解时输出任意即可。
样例输入
5
01011
样例输出
4 5 3 1 2
说明
前一项之和是4, 为偶数。前两项之和为9, 为奇数。前三项之和为12,为偶数。前四项之和为13, 为奇数。前两项之和为15, 为奇数。
符合要求。
输出[2,5,1,3,4]这个数组也是可以通过本样例的。