#codethanksfestival2018e. [code_thanks_festival_2018_e]Union
[code_thanks_festival_2018_e]Union
問題文
以上 以下の整数を、各 は 個以上 個以下の範囲で、好きな個数黒板に書くことができます。
書かれている整数に対して次の操作を繰り返して、ただ つの整数が黒板に書かれているようにできるような整数の書き方は何通りあるでしょうか。
- 黒板に書かれている整数のうち、 つ以上ある整数 を つ消して、黒板に を つ書く
答えは非常に大きくなることがあるので、 で割った余りを計算してください。
ただし つの書き方が異なるとは、それぞれの書き方において操作を始める前に黒板に書かれている個数が異なるような整数が存在する場合を表します。
制約
- 入力は全て整数である
入力
入力は以下の形式で標準入力から与えられる。
...
出力
上手く操作を行うことで黒板に書かれている整数を つに出来るような選び方の個数を で割った余りを出力せよ。
入力例 1
2
1 1
出力例 1
2
を つ書くか、 を つ書く方法が条件を満たします。
入力例 2
3
2 1 1
出力例 2
6
入力例 3
8
300 300 300 300 300 300 300 300
出力例 3
220439161