AT_past202109_f 不完全順列

Description

[problemUrl]: https://atcoder.jp/contests/past202109-open/tasks/past202109_f 長さ $ N $ の `0` および `1` のみからなる文字列 $ S $ が与えられるので、以下の条件を全て満たす長さ $ N $ の数列 $ P=(P_1,P_2,\dots,P_N) $ をひとつ求めて下さい。ただし、そのようなものが存在しない場合は `-1` と出力してください。 - 数列 $ P $ は $ (1,2,\dots,N) $ の順列である、すなわち $ P $ は $ (1,2,\dots,N) $ を並べ替えたものである。 - 全ての $ 1\ \le\ i\ \le\ N $ について、以下の条件を満たす。 - $ S $ の $ i $ 文字目が `1` なら、 $ P_i=i $ である。 - $ S $ の $ i $ 文字目が `0` なら、 $ P_i\ \neq\ i $ である。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ S $

Output Format

条件を満たす数列 $ P $ が存在しない場合、 `-1` と出力せよ。 存在する場合、数列 $ P $ の各項を整数として空白区切りで出力せよ。

Explanation/Hint

### 注意 この問題に対する言及は、2021/10/02 18:00 JST まで禁止されています。言及がなされた場合、賠償が請求される可能性があります。 試験後に総合得点や認定級を公表するのは構いませんが、どの問題が解けたかなどの情報は発信しないようにお願いします。 ### 制約 - $ 1\ \le\ N\ \le\ 10^5 $ - $ S $ は `0` および `1` のみからなる。 ### Sample Explanation 1 $ S $ の $ 1,3,5 $ 文字目は `1` なので、 $ P_1=1,P_3=3,P_5=5 $ である必要があります。 $ S $ の $ 2,4 $ 文字目は `0` なので、 $ P_2\ \neq\ 2,\ P_4\ \neq\ 4 $ である必要があります。 この入力の場合、題意を満たす数列 $ P $ として考えられるものは、 $ (1,4,3,2,5) $ のみです。 ### Sample Explanation 2 条件を満たす数列 $ P $ が存在しない場合、 `-1` と出力してください。 ### Sample Explanation 3 他にも、以下のような出力も正答と扱われます。 ``` 2 1 3 4 5 9 7 8 10 12 11 6 ```