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} $$