atcoder#ARC061D. [ARC061F] 3人でカードゲーム

[ARC061F] 3人でカードゲーム

配点 : 11001100

問題文

A さん、B さん、C さんの 33 人が以下のようなカードゲームをプレイしています。

  • 最初、33 人はそれぞれ abc いずれかの文字が書かれたカードを、A さんは NN 枚、B さんは MM 枚、C さんは KK 枚持っている。33 人は、持っているカードを並べ替えることはできない。
  • A さんのターンから始まる。
  • 現在自分のターンである人がカードを 11 枚以上持っているならば、そのうち先頭のカードを捨てる。その後、捨てられたカードに書かれているアルファベットと同じ名前の人 (例えば、カードに a と書かれていたならば A さん) のターンとなる。
  • 現在自分のターンである人がカードを 11 枚も持っていないならば、その人がゲームの勝者となり、ゲームは終了する。

33 人が最初に配られるカードに書いてある文字の並びは、全部で 3N+M+K3^{N+M+K} 通りの組み合わせがあります。このうち、A さんが勝者となってゲームが終了するのが何通りあるかを求めてください。

答えは大きくなる可能性があるので、1000000007(=109+7)1\,000\,000\,007 (=10^9+7) で割った余りを出力してください。

制約

  • 1N3×1051 \leq N \leq 3 \times 10^5
  • 1M3×1051 \leq M \leq 3 \times 10^5
  • 1K3×1051 \leq K \leq 3 \times 10^5

部分点

  • 1N10001 \leq N \leq 10001M10001 \leq M \leq 10001K10001 \leq K \leq 1000 を満たすデータセットに正解した場合は、 500500 点が与えられる。

入力

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

NN MM KK

出力

答えを 1000000007(=109+7)1\,000\,000\,007 (=10^9+7) で割った余りを出力せよ。

1 1 1
17
  • A さんが a を持っている場合は、他の 22 人の持っているカードに関わらず A さんが勝ちます。これは 3×3=93 \times 3=9 通りあります。
  • A さんが b を持っている場合は、B さんが a を持っているか、 B さんが c を持っていてかつ C さんが a を持っている場合に限り A さんが勝ちます。これは 3+1=43+1=4 通りあります。
  • A さんが c を持っている場合は、C さんが a を持っているか、 C さんが b を持っていてかつ B さんが a を持っている場合に限り A さんが勝ちます。これは 3+1=43+1=4 通りあります。

合計すると、 9+4+4=179+4+4=17 通りとなります。

4 2 2
1227
1000 1000 1000
261790852