hy的机器人
题号:NC292237
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}hy的机器人来到了一个一维空间,这个一维空间只有一条长度为 n 的数轴,有 0\sim n 一共 n+1 个坐标。
\hspace{15pt}而机器人初始处于坐标 x 处,而经过hy的探测,这个一维空间的出口在坐标 y 处,只要达到 y 处机器人就可以逃离这个一维空间回到hy身边。
\hspace{15pt}于是hy决定从四种移动指令中自由选择任意多个组合,并依据指令指挥机器人移动。四种移动指令分别是:向左移动 1 格(即坐标 -1),向左移动 2 格(即坐标 -2),向右移动 1 格(即坐标 +1),向右移动 2 格(即坐标 +2)。
\hspace{15pt}但是在移动过程中hy发现,这个一维空间的每个坐标只能到达一次(起点视为已经到达过),如果重复到达某个坐标,机器人会直接掉入黑洞!而在移动过程中,只能在 0\sim n 的坐标之间移动,不能超出这个范围。
\hspace{15pt}现在hy想知道,有多少种不同的移动方案,能够使得机器人成功到达出口 y 处?由于答案可能很大,请将答案对 (10^9+7) 取模后输出。对于一种方案,一旦机器人到达出口 y 处,则认为机器人成功逃离这个一维空间,之后机器人不可以继续移动,也不再计算方案数。

本题纯净版 Markdown 提供如下。
# G.11189321.hy的机器人

## 题目描述

$\hspace{15pt}$hy的机器人来到了一个一维空间,这个一维空间只有一条长度为 $n$ 的数轴,有 $0\sim n$ 一共 $n+1$ 个坐标。  
$\hspace{15pt}$而机器人初始处于坐标 $x$ 处,而经过hy的探测,这个一维空间的出口在坐标 $y$ 处,只要达到 $y$ 处机器人就可以逃离这个一维空间回到hy身边。  
$\hspace{15pt}$于是hy决定从四种移动指令中自由选择任意多个组合,并依据指令指挥机器人移动。四种移动指令分别是:向左移动 $1$ 格(即坐标 $-1$),向左移动 $2$ 格(即坐标 $-2$),向右移动 $1$ 格(即坐标 $+1$),向右移动 $2$ 格(即坐标 $+2$)。  
$\hspace{15pt}$但是在移动过程中hy发现,这个一维空间的每个坐标只能到达一次(起点视为已经到达过),如果重复到达某个坐标,机器人会直接掉入黑洞!而在移动过程中,只能在 $0\sim n$ 的坐标之间移动,不能超出这个范围。  
$\hspace{15pt}$现在hy想知道,有多少种不同的移动方案,能够使得机器人成功到达出口 $y$ 处?由于答案可能很大,请将答案对 $(10^9+7)$ 取模后输出。对于一种方案,一旦机器人到达出口 $y$ 处,则认为机器人成功逃离这个一维空间,之后机器人不可以继续移动,也不再计算方案数。

## 输入描述

$\hspace{15pt}$在一行上输入三个整数 $n,x,y \left(1\leq n\leq 10^6;\ 0\leq x,y\leq n;\ x\neq y\right)$ 代表一维空间的长度,机器人初始位置,出口位置。

## 输出描述

$\hspace{15pt}$输出一个整数,表示有多少种不同的移动方案能够使得机器人成功逃离这个一维空间。由于答案可能很大,请将答案对 $(10^9+7)$ 取模后输出。

## 样例

~~~text input:#1
4 1 3
~~~

~~~text output:#1
5
~~~

$\hspace{15pt}$在这个样例中,有以下五种移动方案:
$\hspace{23pt}\bullet\,$$1 \to 2 \to 3$;
$\hspace{23pt}\bullet\,$$1 \to 2 \to 4 \to 3$;
$\hspace{23pt}\bullet\,$$1 \to 0 \to 2 \to 3$;
$\hspace{23pt}\bullet\,$$1 \to 0 \to 2 \to 4 \to 3$;
$\hspace{23pt}\bullet\,$$1 \to 3$。

~~~text input:#2
5 0 5
~~~

~~~text output:#2
13
~~~

输入描述:

\hspace{15pt}在一行上输入三个整数 n,x,y \left(1\leqq n\leqq 10^6;\ 0\leqq x,y\leqq n;\ x\neq y\right) 代表一维空间的长度,机器人初始位置,出口位置。

输出描述:

\hspace{15pt}输出一个整数,表示有多少种不同的移动方案能够使得机器人成功逃离这个一维空间。由于答案可能很大,请将答案对 (10^9+7) 取模后输出。
示例1

输入

复制
4 1 3

输出

复制
5

说明

\hspace{15pt}在这个样例中,有以下五种移动方案:
\hspace{23pt}\bullet\,1 \to 2 \to 3
\hspace{23pt}\bullet\,1 \to 2 \to 4 \to 3
\hspace{23pt}\bullet\,1 \to 0 \to 2 \to 3
\hspace{23pt}\bullet\,1 \to 0 \to 2 \to 4 \to 3
\hspace{23pt}\bullet\,1 \to 3
示例2

输入

复制
5 0 5

输出

复制
13