atcoder#ARC067C. [ARC067E] Grouping
[ARC067E] Grouping
配点 : 点
問題文
から までの番号のついた 人の人がいます。 以下の二つの条件を満たすように、彼らをいくつかのグループに分けたいです。
- どのグループも、そのグループに含まれる人数が 人以上 人以下である。
- ちょうど 人の人が含まれるようなグループの数を で表したとき、 すべての について、 または が成り立っている。
このようなグループ分けが何通りあり得るか求めてください。 ただし、ある二つのグループ分けが異なるとは、二人の人の組であって、 片方のグループ分けでは同じグループに含まれ、他方では同じグループに含まれないようなものが存在することを意味します。 なお、答えは非常に大きくなることがあるので、 で割った余りを出力してください。
制約
入力
入力は以下の形式で標準入力から与えられる。
出力
あり得るグループ分けの個数を、 で割った余りを出力せよ。
3 1 3 1 2
4
以下の 通りの分け方があります。
のような分け方は、一つ目の条件は満たしていますが、 二つ目の条件を満たしていないために数えられません。
7 2 3 1 3
105
人グループ、 人グループ、 人グループの三つに分ける以外に適切な分け方はありません。 そして、このような分け方は 通りあります。
1000 1 1000 1 1000
465231251
10 3 4 2 5
0
答えが になることもあり得ます。