AT_abc207_e [ABC207E] Mod i

Description

[problemUrl]: https://atcoder.jp/contests/abc207/tasks/abc207_e 長さ $ N $ の数列 $ A $ が与えられます。$ A $ をいくつかの連続した空でない部分列 $ B_1,B_2,\ldots,B_k $ に切り分ける方法であって、以下の条件を満たすものの個数を求めてください。 - 全ての $ i\ (1\ \leq\ i\ \leq\ k) $ について、$ B_i $ に含まれる要素の総和が $ i $ で割り切れる。 答えは非常に大きくなることがあるので、$ (10^9+7) $ で割ったあまりを出力してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

Output Format

問題文中の条件を満たすような切り分け方の個数を $ (10^9+7) $ で割ったあまりを出力せよ。

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 3000 $ - $ 1\ \leq\ A_i\ \leq\ 10^{15} $ - 入力は全て整数 ### Sample Explanation 1 以下の $ 3 $ 通りの切り分け方があります。 - $ (1),(2),(3),(4) $ - $ (1,2,3),(4) $ - $ (1,2,3,4) $ ### Sample Explanation 3 入力が $ 32 $ bit 整数型に収まりきらない場合があります。