题目描述
阿克曼(Ackermann)函数 $A(m,n)$ 中,$m, n$ 定义域是非负整数,函数值定义为:
- $m=0$ 时:$\text{akm}(m,n)=n+1$。
- $m>0$ 且 $n=0$ 时:$\text{akm}(m,n)=\text{akm}(m-1,1)$。
- $m>0$ 且 $n>0$ 时:$\text{akm}(m,n)=\text{akm}(m-1,\text{akm}(m,n-1))$。
------------
33DAI 最近学了并查集,同时使用路径压缩和启发式合并之后,并查集的每个操作平均时间仅为 $O(\alpha(n))$,其中 $\alpha$ 为阿克曼函数的反函数,即为最大的整数 $m$ 使得 $\text{akm}(m, m) \leqslant n$。
输入 $n$,请输出 $\alpha(n)$ 的值,即满足 $\text{akm}(m,m)\le n$ 的最大的 $m$ 值。
输入
第一行为一个整数 $T$,表示数据组数。
接下来 $T$ 行,每行为一个整数 $n$。
输出
输出 $T$ 行,即每个 $n$ 对应的 $\alpha(n)$ 的值。
样例输入输出
提示
对于 $100\%$ 的数据,$1\le T\le 10^6$,$1 \le n \le 10^{18}$。
- 子任务 1(10 分):保证 $T\le 1000$ 且 $n\le 10$.
- 子任务 2(20 分):保证 $T\le 1000$ 且 $n\le 100$.
- 子任务 2(30 分):保证 $T\le 1000$.
- 子任务 4(40 分):没有特殊限制.