atcoder#AGC012C. [AGC012C] Tautonym Puzzle

[AGC012C] Tautonym Puzzle

题目描述

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

  • 条件:x x はある長さ 1 1 以上の文字列 y y 2 2 回繰り返した文字列 yy yy で表すことができる。

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

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

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

输入格式

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

N N

输出格式

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

题目大意

我们称一个字符串 xx 是好的当且仅当它满足以下条件:

  • xx 可以被表示为另外一个串 yy 复制一遍得到,即 x=yyx=\overline {yy}

举个例子:aabubobubo 是好的,aabcabcabcabba 不是。

现在要求一个串 ss 满足下列条件,可以证明这个串存在:

  • s200|s|\leqslant 200
  • 字符集大小为 100100,每个字符用 [1,100][1,100] 的整数表示。
  • ss 的所有的 2s2^{|s|} 个子序列中,恰好有 NN1N10121 \le N \le 10 ^ {12})个串是好的,其中 NN 是给出的。
7
4
1 1 1 1
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

提示

制約

  • 1  N  1012 1\ ≦\ N\ ≦\ 10^{12}

Sample Explanation 1

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