T373866 [HOLD-R1] 运算
题目背景
H2Y 在 $\text{CCF - CSP}$ 初赛中错了 $114514$ 道位运算的题。
题目描述
给出三个整数 $m,a,b$,你需要在区间 $[a,b]$ 内选出一段长度为 $k$($2\le k \le m$)的区间 $[l,r]\ (r-l+1=k)$ 使得 $\gcd\Big(l\ \operatorname{and}\ (l-1),(l+1)\ \operatorname{and}\ l,\cdots,i\ \operatorname{and}\ (i-1)(i\in[l,r]),\cdots,\ r \operatorname{and}\ (r-1)\Big)$ 最大,请求出这个值。
$\gcd(a_1,a_2,\cdots,a_n)$ 表示 $a_1,a_2,\cdots,a_n$ 的最大公因数。**特别地,我们规定 $0$ 自身以及 $0$ 与任何整数的最大公因数是 $1$。**
$\operatorname{and}$ 指 [按位与](https://baike.baidu.com/item/%E6%8C%89%E4%BD%8D%E4%B8%8E/9601818?fr=aladdin) 运算。
输入格式
一行三个整数 $m,a,b$。
输出格式
对于每组数据,输出一行一个整数表示答案。
说明/提示
**本题采用捆绑测试**
- Subtask #1(30 pts):$a < b \le 5000$;
- Subtask #2(70 pts):无特殊性质;
对于 $100\%$ 的数据,$1\le a < b \le 10^{18}$,$b-a \ge 4$,$2\le m \le b - a + 1$。
**样例 #1 解释:**
在区间 $[6,10]$ 内选择 $[9,10]$(见下表),$\gcd$ 是 $8$。可以证明这是最大值。
**附:$1\sim12$ 的表**
$$
\begin{aligned}
i = 1\ 时,&i\ \operatorname{and}\ (i-1)\ 为\ 0\\
i = 2\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 0\\
i = 3\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 2\\
i = 4\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 0\\
i = 5\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 4\\
i = 6\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 4\\
i = 7\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 6\\
i = 8\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 0\\
i = 9\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 8\\
i = 10\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 8\\
i = 11\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 10\\
i = 12\ 时,&i\ \operatorname{and}\ (i-1)\ 为 \ 8\\
\end{aligned}
$$