100 atcoder#ABC216C. [ABC216C] Many Balls

[ABC216C] Many Balls

题目描述

空の箱があります。
髙橋君は以下の 2 2 種類の魔法を好きな順番で好きな回数使えます。

  • 魔法 A A :箱の中にボールを 1 1 つ増やす
  • 魔法 B B :箱の中のボールの数を 2 2 倍にする

合計 120 \mathbf{120} 回以内の魔法で、箱の中のボールの数をちょうど N N 個にする方法を 1 1 つ教えてください。
なお、与えられた制約のもとで条件を満たす方法が必ず存在することが示せます。

魔法以外の方法でボールの数を変化させることはできません。

输入格式

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

N N

输出格式

A , B のみからなる文字列 S S を出力せよ。
S S i i 文字目が A ならば、髙橋君が i i 回目に使う魔法が魔法 A A であることを表し、B ならば魔法 B B であることを表す。

S S の長さは 120 \mathbf{120} 以下でなければならない。

题目大意

题意

有一个空盒子。

你可以以任意顺序执行以下两种操作任意次:

  • 操作 AA :往盒子里放入一个球。
  • 操作 BB :使盒子里球的数量翻倍。

请输出一种操作次数不超过 120120 的方案使得盒子里有 NN 个球。

可以证明一定存在合法方案。

数据范围

  • 1N10181 \le N \le 10^{18}
  • 输入的所有数都是整数。

输入格式

输入一个整数 NN

输出格式

输出一个由 AB 组成的字符串 SSSS 的第 ii 个字符表示第 ii 次操作的种类。

SS 至多由 120120 个字符组成。


样例解释1

盒子中球数的变化情况为 $0 \xrightarrow{A} 1 \xrightarrow{A} 2 \xrightarrow{B} 4 \xrightarrow{A} 5$ 。


样例解释2

盒子中球数的变化情况为 $0 \xrightarrow{B} 0 \xrightarrow{B} 0 \xrightarrow{A} 1 \xrightarrow{B} 2 \xrightarrow{B} 4 \xrightarrow{A} 5 \xrightarrow{A} 6 \xrightarrow{A} 7 \xrightarrow{B} 14$ 。

Translated by @nr0728.\textsf{Translated by @\color{5eb95e}nr0728}.

5
AABA
14
BBABBAAAB

提示

制約

  • 1  N  1018 1\ \leq\ N\ \leq\ 10^{18}
  • 入力は全て整数

Sample Explanation 1

ボールの数は、$ 0\ \xrightarrow{A}\ 1\xrightarrow{A}\ 2\ \xrightarrow{B}4\xrightarrow{A}\ 5 $ と変化します。 AAAAA などの答えも正解になります。

Sample Explanation 2

ボールの数は、$ 0\ \xrightarrow{B}\ 0\ \xrightarrow{B}\ 0\ \xrightarrow{A}1\ \xrightarrow{B}\ 2\ \xrightarrow{B}\ 4\ \xrightarrow{A}5\ \xrightarrow{A}6\ \xrightarrow{A}\ 7\ \xrightarrow{B}14 $ と変化します。 S S の長さを最小化する必要はありません。