atcoder#ARC071D. [ARC071F] Infinite Sequence

[ARC071F] Infinite Sequence

配点 : 10001000

問題文

{1,...,n{1, ... ,n}} からなる無限長の列 a1,a2,...a_1, a_2, ... のうち、 次の条件を満たしているものは何通りあるでしょうか?

  • nn 項から先はすべて同じ数である。つまり、ni,jn \leq i,j ならば ai=aja_i = a_j を満たす。
  • どの正の整数 ii に対しても、第 ii 項の直後に並ぶ aia_i 個の項はすべて同じ数である。つまり、 i<j<ki+aii < j < k\leq i+a_i ならば aj=aka_j = a_k を満たす。

答えを 109+710^9+7 で割ったあまりを求めてください。

制約

  • 1n1061 \leq n \leq 10^6
  • nn は整数

入力

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

nn

出力

条件を満たす数列の数を 109+710^9+7 で割ったあまりを出力せよ。

2
4

以下の 44 通りがあります。

  • 1,1,1,...1, 1, 1, ...
  • 1,2,2,...1, 2, 2, ...
  • 2,1,1,...2, 1, 1, ...
  • 2,2,2,...2, 2, 2, ...
654321
968545283