atcoder#ARC103C. [ARC103E] Tr/ee

[ARC103E] Tr/ee

配点 : 700700

問題文

長さ nn の文字列 ss が与えられます。 以下の条件を満たす nn 頂点の木は存在するでしょうか?

  • 各頂点には 1,2,...,n1,2,..., n の番号が付けられている
  • 各辺には 1,2,...,n11,2,..., n-1 の番号が付けられていて、ii 番目の辺は 頂点 uiu_iviv_i をつないでいる
  • ssii 番目の文字が 1 であるとき、 木からある辺を 11 つ取り除くことで、サイズ ii の連結成分が作れる
  • ssii 番目の文字が 0 であるとき、 木からどのように辺を 11 つ取り除いてもサイズ ii の連結成分が作れない

条件を満たす木が存在する場合、11 つ構築してください。

制約

  • 2n1052\leq n \leq 10^5
  • ss01 からなる長さ nn の文字列

入力

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

ss

出力

条件を満たす nn 頂点の木が存在しない場合、-1 と出力してください。

条件を満たす nn 頂点の木が存在する場合、 n1n-1 行出力してください。 ii 行目には ui,viu_i,v_i を空白区切りで出力してください。 複数の木が条件を満たす場合、どれを出力しても構いません。

1111
-1

nn 頂点の木から辺を 11 つ取り除いてサイズ nn の連結成分を作ることはできません。

1110
1 2
2 3
3 4

11 番目の辺または 33 番目の辺を取り除くと、サイズ 11 の連結成分とサイズ 33 の連結成分ができます。 22 番目の辺を取り除くと、サイズ 22 の連結成分が 22 つできます。

1010
1 2
1 3
1 4

どの辺を取り除いても、サイズ 11 の連結成分とサイズ 33 の連結成分ができます。