AT_cpsco2019_s3_f Flexible Permutation

Description

[problemUrl]: https://atcoder.jp/contests/cpsco2019-s3/tasks/cpsco2019_s3_f 正の整数 $ N $ が与えられます。 $ 1,\ 2,\ \ldots,\ N $ を並び替えてできる数列 $ P_1,\ P_2,\ \ldots,\ P_N $ は $ N! $ 通りありますが、そのうち以下の条件を満たすものが何通りあるかを、$ 10^{9}\ +\ 7 $ で割ったあまりを求めるプログラムを作成してください。 - $ P_i\ >\ i $ を満たすような $ i $ $ (=\ 1,\ 2,\ \dots,\ N) $ がちょうど $ A $ 個であり、 - $ P_i\ を満たすような\ i $ $ (=\ 1,\ 2,\ \dots,\ N) $ がちょうど $ B $ 個であり、 - $ P_i\ =\ i $ を満たすような $ i $ $ (=\ 1,\ 2,\ \dots,\ N) $ がちょうど $ N\ -\ A\ -\ B $ 個です。

Input Format

入力は以下の形式で標準入力から与えられます。 > $ N $ $ A $ $ B $

Output Format

条件を満たす順列の個数を $ 10^{9}\ +\ 7 $ で割ったあまりを一行に出力してください。

Explanation/Hint

### 制約 - $ 1\ \le\ N\ \le\ 300 $ - $ 0\ \le\ A,\ B\ \le\ N $ - $ A\ +\ B\ \le\ N $ - 与えられる入力はすべて整数です。 ### 部分点 この問題には部分点が設定されています。 - $ N\ \leq\ 15 $ を満たす入力に正解すると、$ 300 $ 点が与えられます。 ### Sample Explanation 1 $ (1,\ 3,\ 2),\ (3,\ 2,\ 1),\ (2,\ 1,\ 3) $ の $ 3 $ 個が条件を満たします。 ### Sample Explanation 3 条件を満たす順列が存在しないこともあります。