atcoder#ABC156E. [ABC156E] Roaming

[ABC156E] Roaming

配点 : 500500

問題文

nn 個の部屋がある建物があります。 部屋には 11 から nn までの番号が付いています。

建物の各部屋から、他の任意の部屋に移ることが可能です。

ここで、建物のある部屋 ii にいる人が、別の部屋 j(ij)j \sim (i \neq j) に移ることを 人の移動 と呼ぶことにします。

最初、建物の各部屋には人が 11 人いました。

このあと現在までに、人の移動がちょうど kk 回起きたことが分かっています。

現在、建物の各部屋にいる人の数の組合せとして、ありえるものは何通りでしょうか。

(109+7)(10^9 + 7) で割った余りを求めてください。

制約

  • 入力は全て整数である。
  • 3n2×1053 \leq n \leq 2 \times 10^5
  • 2k1092 \leq k \leq 10^9

入力

入力は以下の形式で標準入力から与えられる。

nn kk

出力

現在、建物の各部屋にいる人の数の組合せとして、ありえるものの個数を (109+7)(10^9 + 7) で割った余りを出力せよ。

3 2
10

現在、部屋 11 にいる人の数を c1c_1、部屋 22 にいる人の数を c2c_2、部屋 33 にいる人の数を c3c_3 と すると、(c1,c2,c3)(c_1, c_2, c_3) としてありえるものは、

  • (0,0,3)(0, 0, 3)
  • (0,1,2)(0, 1, 2)
  • (0,2,1)(0, 2, 1)
  • (0,3,0)(0, 3, 0)
  • (1,0,2)(1, 0, 2)
  • (1,1,1)(1, 1, 1)
  • (1,2,0)(1, 2, 0)
  • (2,0,1)(2, 0, 1)
  • (2,1,0)(2, 1, 0)
  • (3,0,0)(3, 0, 0)

1010 通りです。

例えば、まず部屋 11 にいる人が部屋 22 に移動し、 次に部屋 22 にいる誰かが部屋 33 に移動した場合を考えると、 (c1,c2,c3)(c_1, c_2, c_3)(0,1,2)(0, 1, 2) になります。

200000 1000000000
607923868

個数を (109+7)(10^9 + 7) で割った余りを出力してください。

15 6
22583772