atcoder#ARC122C. [ARC122C] Calculator

[ARC122C] Calculator

题目描述

すぬけくんは整数 x,y x,y を持っています. 最初 x=0,y=0 x=0,y=0 です.

すぬけくんは,以下の 4 4 つの操作を好きな順で好きな回数行なえます.

  • 操作 1 1 : x x の値を x+1 x+1 で置き換える
  • 操作 2 2 : y y の値を y+1 y+1 で置き換える
  • 操作 3 3 : x x の値を x+y x+y で置き換える
  • 操作 4 4 : y y の値を x+y x+y で置き換える

正整数 N N が与えられます.

130 130 回以内の操作で,x x の値を N N にしてください. このとき,y y にはどんな値が入っていても構いません. この問題の制約下で,このような操作列が存在することは証明できます.

输入格式

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

N N

输出格式

以下の形式で答えを出力せよ.

K K t1 t_1 t2 t_2 \vdots tK t_K

ここで,K K (0  K  130) (0\ \leq\ K\ \leq\ 130) は操作回数を表し,ti t_i (1  ti  4) (1\ \leq\ t_i\ \leq\ 4) i i 番目に行う操作を表す整数である.

题目大意

题目描述

Snuke有整数xxyy。最初,x=0y=0x=0,y=0

Snuke可以以任何顺序执行以下四种操作任意次:

  • 操作11:将x+1x+1
  • 操作22:将y+1y+1
  • 操作33:将x+yx+y
  • 操作44:将y+xy+x

给你一个正整数NN。最多做130130次运算,使xx的值为NN。在这里,yy可以有任何值。

我们可以证明,在这个问题的约束下,存在这样一个运算序列。

输入格式

一个正整数NN

输出格式

第一行一个正整数KK,表示变化的次数。 下面KK行,每行一个正整数,表示第几种操作。

4
5
1
4
2
3
1

提示

制約

  • 1  N  1018 1\ \leq\ N\ \leq\ 10^{18}
  • 入力される値はすべて整数である

Sample Explanation 1

(x,y) (x,y) の値は, (0,0) (0,0)\rightarrow (操作 1 1 )  (1,0)  \rightarrow\ (1,0)\ \rightarrow (操作 4 4 )  (1,1)  \rightarrow\ (1,1)\ \rightarrow (操作 2 2 )  (1,2)  \rightarrow\ (1,2)\ \rightarrow (操作 3 3 )  (3,2)  \rightarrow\ (3,2)\ \rightarrow (操作 1 1 )  (4,2) \rightarrow\ (4,2) と変化し,最終的な x x の値は N N に一致しています.