atcoder#AGC040F. [AGC040F] Two Pieces
[AGC040F] Two Pieces
配点 : 点
問題文
数直線上に,区別できない つの駒が置かれています. どちらの駒も最初,座標 にあります.(駒は同じ座標に同時に存在できます)
これらの駒に対して,以下の 種類の操作が可能です.
- 好きな駒を つ選び, 大きい座標に移動する.
- 座標の小さい駒を,座標の大きい駒の位置へと移動する. なお,もともと つの駒が同じ座標に置いてある場合は何も起きないが,その場合でも 回の操作として数える.
以上の操作を好きな順番で 回繰り返して, つの駒の一方が座標 ,他方が座標 にあるようにしたいです. このような動かし方が何通りあるかを求めてください. ただし答えは非常に大きくなることがあるので, で割ったあまりを求めてください.
なお,ある つの動かし方 が異なるとは,整数 () であって, 動かし方 で 回目の操作後に駒の置いてある座標の集合 と 動かし方 で 回目の操作後に駒の置いてある座標の集合 が異なるものが存在することを意味します.
制約
- 入力される値はすべて整数である.
入力
入力は以下の形式で標準入力から与えられる.
出力
条件をみたす駒の動かし方が何通りあるかを で割ったあまりを出力せよ.
5 1 3
4
以下の 通りの動かし方があります. なお, で,駒の座標がそれぞれ にある状態を表しています.
- $(0,0) \to (0,0) \to (0,1) \to (0,2) \to (0,3) \to (1,3)$
- $(0,0) \to (0,0) \to (0,1) \to (0,2) \to (1,2) \to (1,3)$
- $(0,0) \to (0,0) \to (0,1) \to (1,1) \to (1,2) \to (1,3)$
- $(0,0) \to (0,1) \to (1,1) \to (1,1) \to (1,2) \to (1,3)$
10 0 0
1
10 4 6
197
1000000 100000 200000
758840509