#D0624. [DAY01]角谷变换

[DAY01]角谷变换

题目描述

33DAI 规定了一个上限正整数 RR,然后定义了一个非常有意思的函数:

int f(int x, int n)
{
    if (n == 0)
        return x;
    if (x % 2 == 0)
        return f(x / 2, n - 1);
    return f(min(3 * x + 1, R), n - 1);
}

33DAI 希望你帮他算算 QQ 个 函数值。

输入格式

第一行为空格隔开的两个正整数 Q,RQ,R

接下来 QQ 行,第 ii 行为空格隔开的两个正整数 xi,ni x_i, n_i,描述了需要你求解的第 ii 个函数值的两个参数。

输出格式

输出 QQ 行,每行一个整数。

ii 行为第 ii 个函数值,即 f(xi,ni)f(x_i, n_i)

10 100
33 1
33 10
33 100
33 1000
1 1
1 2
1 3
1 4 
1 5
1 6
100
44
2
2
4
2
1
4
2
1

5 1000
333 1000000
334 1000000
335 1000000
336 1000000
337 1000000
466
412
466
2
466

数据规模与约定

对于 100%100\% 的数据,1Q,R1061 \le Q,R \le 10^61xiR1\le x_i\le R1ni1091\le n_i\le 10^9

  • 子任务 1(30 分):1Q,R,xi,ni10001 \le Q,R,x_i,n_i \le 1000
  • 子任务 2(30 分):R10R\le 10
  • 子任务 3(40 分):没有特殊限制。