atcoder#ARC106F. [ARC106F] Figures
[ARC106F] Figures
配点 : 点
問題文
高橋君はフィギュアを組み立てようとしています。このフィギュアは、 個の部品(部品 , 部品 , ..., 部品 )と、 個の接続用部品から成ります。部品同士は区別が出来ますが、接続用部品同士は区別が出来ません。
部品 には、 個の接続用部品を挿す穴(穴 , 穴 , ..., 穴 )が空いています。各部品の穴同士は区別が出来ます。 各接続用部品は、 個の部品の穴に挿し込まれ、それら 個の部品を接続します。 つの穴に複数の接続用部品を挿し込むことは出来ません。
以下の性質を満たすフィギュアのことを、完成形と呼びます。
- 個の接続用部品が全て部品の接続に使われている。
- 部品を頂点とし、 接続用部品で接続された部品に対応する頂点組に辺が存在する 頂点 辺の無向グラフを考えた際に、このグラフは連結である。
つの完成形について、全ての穴の組についてその つを接続する接続用部品が存在するか否かが一致するとき、 つの完成形が同じであると見なします。
完成形が何種類あるかを答えてください。 ただし、答えは非常に大きくなることがあるので、 で割った余りを出力してください。
制約
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを出力せよ。
3
1 1 3
6
例えば、部品 の穴 と部品 の穴 を接続し、部品 の穴 と部品 の穴 を接続したフィギュアは、完成形として認められます。
3
1 1 1
0
6
7 3 5 10 6 4
389183858
9
425656 453453 4320 1231 9582 54336 31435436 14342 423543
667877982