No.1683 Robot Guidance
タグ : / 解いたユーザー数 80
作問者 : Sumitacchan / テスター : hitonanode ygussany
問題文
$xy$ 平面上の原点 $(x,y)=(0,0)$ にロボットが置かれています。このロボットは、最初は $x$ 軸正の方向を向いています。
あなたはこのロボットに対し、次の $2$ 種類の命令を行うことができます。
G
: ロボットは向いている方向に $1$ 進む。T
: ロボットは反時計回りに $90$ 度回転する。すなわち、この命令が行われるごとにロボットの向きは、 $x$ 軸正 → $y$ 軸正 → $x$ 軸負→ $y$ 軸負 → $x$ 軸正 → $\cdots$ と順に変わる。
あなたは、 $A$ 回の命令G
と $B$ 回の命令T
をある順番で行うことを考えています
(そのような命令順は $\binom{A+B}{A}$ 通り考えられます)。
あなたの目標は、$A+B$ 回の全ての命令が終わった後にロボットが $(x,y)=(X,Y)$ にいるようにすることです。
この目標を達成できるような命令順は何通りあるでしょうか。
答えは非常に大きくなることがあるので $10^9+7$ で割った余りを出力してください。
入力
$A\ \ B\ \ X\ \ Y$
- $0\le A,B\le 10^6$
- $A+B>0$
- $-10^6\le X,Y\le 10^6$
- 入力は全て整数である。
出力
ロボットが最終的に $(x,y)=(X,Y)$ にいるような命令順の数を $10^9+7$ で割った余りを出力してください。
サンプル
サンプル1
入力
2 1 1 1
出力
1
命令G
を $2$ 回、命令T
を $1$ 回行うような命令順はTGG
, GTG
, GGT
の $3$ 通りです。
そのうちGTG
のみ、ロボットの最終位置が $(x,y)=(1,1)$ になります。
GTG
という命令順の下で、ロボットは次のように動きます。
G
で $(x,y)=(1,0)$ に進む。T
で $y$ 軸正の方向を向く。G
で $(x,y)=(1,1)$ に進む。サンプル2
入力
1 6 0 1
出力
2
TGTTTTT
, TTTTTGT
の $2$ 通りです。
サンプル3
入力
998 244 35 3
出力
634338670
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。