atcoder#ABC116B. [ABC116B] Collatz Problem

[ABC116B] Collatz Problem

题目描述

数列 a={a1,a2,a3,......} a=\{a_1,a_2,a_3,......\} は、以下のようにして定まります。

  • 初項 s s は入力で与えられる。
  • 関数 f(n) f(n) を以下のように定める: n n が偶数なら f(n) = n/2 f(n)\ =\ n/2 n n が奇数なら f(n) = 3n+1 f(n)\ =\ 3n+1
  • i = 1 i\ =\ 1 のとき ai = s a_i\ =\ s i > 1 i\ >\ 1 のとき ai = f(ai1) a_i\ =\ f(a_{i-1}) である。

このとき、次の条件を満たす最小の整数 m m を求めてください。

  • am = an (m > n) a_m\ =\ a_n\ (m\ >\ n) を満たす整数 n n が存在する。

输入格式

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

s s

输出格式

条件を満たす最小の整数 m m を出力してください。

题目大意

定义 ss 为如下数列:

$\begin{cases}a_{i+1}=\dfrac{a_i}{2}(a_i\equiv0\mod2)\\a_{i+1}=a_i\times3+1(a_i\equiv1\mod2)\end{cases}$

特殊地,a1a_1 由输入给出,且满足 1a11001\leq a_1\leq100

注意:不保证运算过程中不会超过 a1a_1 范围。

定义正整数 mm 存在,当且仅当存在正整数 nn 使得

{am=anm>n\begin{cases}a_m=a_n\\m>n\end{cases}

成立。

请找出最小的 mm 。可以证明,在数据范围内, mm 始终存在。

8
5
7
18
54
114

提示

制約

  • 1  s  100 1\ \leqq\ s\ \leqq\ 100
  • 入力はすべて整数である。
  • a a のすべての要素、および条件を満たす最小の m m 1000000 1000000 以下となることが保証される。

Sample Explanation 1

a={8,4,2,1,4,2,1,4,2,1,......} a=\{8,4,2,1,4,2,1,4,2,1,......\} です。a5=a2 a_5=a_2 なので、答えは 5 5 です。

Sample Explanation 2

$ a=\{7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1,4,2,1,......\} $ です。