atcoder#ABC290F. [ABC290F] Maximum Diameter
[ABC290F] Maximum Diameter
配点 : 点
問題文
長さ の正整数列 に対して、 を以下のように定めます。
- 頂点の木であって、 番目の頂点の次数が であるようなものを良い木と呼ぶ。 良い木が存在するならば、 は良い木の直径の最大値。良い木が存在しないならば、。
ただし、木の 頂点の間の距離は一方から他方へ移動するときに用いる辺の本数の最小値であり、 木の直径は任意の 頂点の間の距離の最大値として定められます。
長さ の正整数列 としてあり得るもの全てに対する の総和を で割った余りを求めてください。 なお、 の総和は有限値になることが証明できます。
個のテストケースが与えられるので、それぞれについて答えを求めてください。
制約
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。ここで、 は 番目のテストケースを意味する。
各テストケースは以下の形式で与えられる。
出力
行出力せよ。
行目には、 番目のテストケースに対する答えを出力せよ。
10
2
3
5
8
13
21
34
55
89
144
1
6
110
8052
9758476
421903645
377386885
881422708
120024839
351256142
の場合について、
例えば、
- のとき、次数が となる 頂点の木は存在しないため、 です。
- のとき、良い木は以下の図のものに限られます。この木の直径は であるため、 です。
のとき であり、それ以外の のとき であるため、答えは です。