atcoder#AGC012C. [AGC012C] Tautonym Puzzle

[AGC012C] Tautonym Puzzle

配点 : 10001000

問題文

文字列 xx が以下の条件を満たすとき、xx良い文字列 と呼びます。

  • 条件:xx はある長さ 11 以上の文字列 yy22 回繰り返した文字列 yyyy で表すことができる。

例えば aa,bubobubo などは良い文字列ですが、空文字列、a,abcabcabc,abba などは良い文字列ではありません。

ワシとフクロウが良い文字列に関するパズルを作りました。 以下の条件を満たす文字列 ss をどれか 11 つ求めてください。この問題の制約下で、そのような文字列が必ず存在することが証明できます。

  • 1s2001 \leq |s| \leq 200
  • ss11 から 100100 までの整数で表される 100100 種類の文字のみからなる。
  • ss2s2^{|s|} 個ある部分列のうち、良い文字列であるようなものは NN 個ある。

制約

  • 1N10121 \leq N \leq 10^{12}

入力

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

NN

出力

11 行目には ss の長さ s|s| を出力せよ。 22 行目に ss の各要素を 11 文字目から順に空白区切りで出力せよ。ss が上記の条件を満たすならば正解となる。

7
4
1 1 1 1

ss の部分列であって良い文字列となるようなものは (1,1) と (1,1,1,1) の 22 種類があります。(1,1) であるような部分列は 66 個、(1,1,1,1) であるような部分列は 11 個あるため、合計 77 個です。

299
23
32 11 11 73 45 8 11 83 83 8 45 32 32 10 100 73 32 83 45 73 32 11 10