I - ABCalculator
Assam
2
s
1024
MB
650
点
問題文
a
, b
, c
の $3$ 種類の文字からなる文字列 $S$ があります。
Alice は、$S$ に対して「操作 $1$ か操作 $2$ のうち好きな方を実行する」ことを、 どちらの操作も行えなくなるまで 続けます。
- 操作 $1$: $S$ の連続する部分文字列
ba
をひとつ選び、aab
に置き換える。 - 操作 $2$: $S$ の連続する部分文字列
ca
をひとつ選び、aaac
に置き換える。
ただし、「 どちらの操作も行えない状態 」とは、 $S$ の連続する部分文字列に ba
と ca
のどちらも含まれない状態を指します。
Alice の目標は、すべての操作の終了時に、長さ $L$ の文字列を作ることです。
$L$ が与えられるので、目標を達成することが可能である、操作前の文字列 $S$ の長さの最小値を求めてください。
なお、任意の正の整数 $L$ に対して、目標を達成できる文字列 $S$ が存在することが証明できます。
制約
- $1 \leq L \leq 10^{18}$
- $L$ は整数
部分点
この問題には、部分点が設定されている。部分点の採点方法については、コンテストトップ を参照すること。
- ($50$ 点)
- $L \leq 10$
- ($100$ 点)
- $L \leq 10^3$
- ($100$ 点)
- $L \leq 10^5$
- ($400$ 点)
- 追加の制約はない。
入力
入力は以下の形式で標準入力から与えられる。
$L$
出力
Alice の目標を達成できる、操作前の文字列 $S$ の長さの最小値を出力せよ。
入力例 1
6
出力例 1
3
初期の文字列 bba
とすると、次のように操作を行うことで、Aliceの目標を達成できます。
目標を達成するために、初期の文字列は長さ $3$ より短くできないため、 $3$ を出力します。
- 操作1を行い、 $S=$
baab
- 操作1を行い、 $S=$
aabab
- 操作1を行い、 $S=$
aaaabb
- 操作1と操作2のどちらもできないため、終了
この入力は、部分点 1., 2., 3., 4. の制約を満たします。
入力例 2
16
出力例 2
5
初期の文字列を bacaa
とすると、次の順番で操作を行うことで、長さが $16$ になります。
- 操作1を行い、 $S=$
aabcaa
- 操作2を行い、 $S=$
aabaaaca
- 操作1を行い、 $S=$
aaaabaaca
- 操作1を行い、 $S=$
aaaaaabaca
- 操作2を行い、 $S=$
aaaaaabaaaac
- 操作2を行い、 $S=$
aaaaaaaabaaac
- 操作1を行い、 $S=$
aaaaaaaaaabaac
- 操作1を行い、 $S=$
aaaaaaaaaaaabac
- 操作1を行い、 $S=$
aaaaaaaaaaaaaabc
- 操作1と操作2のどちらもできないため、終了
この入力は、部分点 2., 3., 4. の制約を満たします。
入力例 3
28127
出力例 3
16
この入力は、部分点 3., 4. の制約を満たします。
入力例 4
594644939478115
出力例 4
47
この入力は、部分点 4.の制約を満たします。