AT_arc103_c [ARC103E] Tr/ee
Description
[problemUrl]: https://atcoder.jp/contests/arc103/tasks/arc103_c
長さ $ n $ の文字列 $ s $ が与えられます。 以下の条件を満たす $ n $ 頂点の木は存在するでしょうか?
- 各頂点には $ 1,2,...,\ n $ の番号が付けられている
- 各辺には $ 1,2,...,\ n-1 $ の番号が付けられていて、$ i $ 番目の辺は 頂点 $ u_i $ と $ v_i $ をつないでいる
- $ s $ の $ i $ 番目の文字が `1` であるとき、 木からある辺を $ 1 $ つ取り除くことで、サイズ $ i $ の連結成分が作れる
- $ s $ の $ i $ 番目の文字が `0` であるとき、 木からどのように辺を $ 1 $ つ取り除いてもサイズ $ i $ の連結成分が作れない
条件を満たす木が存在する場合、$ 1 $ つ構築してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ s $
Output Format
条件を満たす $ n $ 頂点の木が存在しない場合、`-1` と出力してください。
条件を満たす $ n $ 頂点の木が存在する場合、 $ n-1 $ 行出力してください。 $ i $ 行目には $ u_i,v_i $ を空白区切りで出力してください。 複数の木が条件を満たす場合、どれを出力しても構いません。
Explanation/Hint
### 制約
- $ 2\leq\ n\ \leq\ 10^5 $
- $ s $ は `0` と `1` からなる長さ $ n $ の文字列
### Sample Explanation 1
$ n $ 頂点の木から辺を $ 1 $ つ取り除いてサイズ $ n $ の連結成分を作ることはできません。
### Sample Explanation 2
$ 1 $ 番目の辺または $ 3 $ 番目の辺を取り除くと、サイズ $ 1 $ の連結成分とサイズ $ 3 $ の連結成分ができます。 $ 2 $ 番目の辺を取り除くと、サイズ $ 2 $ の連結成分が $ 2 $ つできます。
### Sample Explanation 3
どの辺を取り除いても、サイズ $ 1 $ の連結成分とサイズ $ 3 $ の連結成分ができます。