题目描述
小奔有一个二元函数 f(a,b)。
如果 a<2 或 b<2 返回 a+b。
其他情况则返回以下四个式子的最大值(除号均为整除):
a+b
g(a/2)+g(a/3)+g(a/8)+g(a/9)+b
g(b/2)+g(b/3)+g(b/8)+g(b/9)+a
$$g(b/2)+g(b/3)+g(b/8)+g(b/9)+g(a/2)+g(a/3)+g(a/8)+g(a/9)
$$
其中,g(n) 返回 max(g(n/2)+g(n/3)+g(n/8)+g(n/9),n),当 n=0 时返回 0。
当然,白痴都想得到可以记忆化求出较小的 f(a,b),所以小奔才不会考你那么简单的题呢。
他想问你当 a,b 都小于 1016 时,f(a,b) 的值。
输入格式
包含多组数据。
每组数据,包含一行,两个正整数 a,b。
输出格式
每组数据输出一行,即 f(a,b) 的值。
5 6
1 1
1 223
11
2
224
提示
对于 40% 的数据,a,b<107。
对于 70% 的数据,时间限制 2 秒。
对于 100% 的数据,a,b<1016。数据组数不超过 104 组。