U392047 两数之星

题目描述

假设 $a$ 和 $b$ 都是非负整数,定义一种新的二元运算符 $\star$,满足以下运算规则: * $0 \star 0 = 0$; * 如果 $a$ 和 $b$ 都是偶数,则 $a \star b = 2 \times \left(\dfrac{a}{2} \star \dfrac{b}{2} \right)$; * 如果 $a$ 和 $b$ 都是奇数,则 $a \star b = 2 \times \left(\dfrac{a-1}{2} \star \dfrac{b-1}{2} \right)$; * 如果 $a$ 是偶数,$b$ 是奇数,则 $a \star b = 1 + 2 \times \left(\dfrac{a}{2} \star \dfrac{b-1}{2} \right)$; * 其他情况,$a \star b = b \star a$。 给出两个非负整数 $x$ 和 $y$,请你输出 $x \star y$ 的结果。

输入格式

输入共两行: 第一行输入一个非负整数,表示 $x$; 第二行输入一个非负整数,表示 $y$。

输出格式

输出一个整数,表示答案。

说明/提示

本题共有十组测试数据: * 对于前四组测试数据,满足 $x \le 1$ 且 $y \le 1$; * 对于前八组测试数据,满足 $x \le 100$ 且 $y \le 100$; * 对于所有的测试数据,满足 $x \le 10^{1000}$ 且 $y \le 10^{1000}$。 提示: 1. 可以使用 `sys` 模块中的 `setrecursionlimit` 函数设置最大递归深度; 3. 递归法无法通过最后一个测试数据。