100 atcoder#ABC105D. [ABC105D] Candy Distribution

[ABC105D] Candy Distribution

配点 : 400400

問題文

NN 個の箱が左右一列に並んでおり、左から ii 番目の箱には AiA_i 個のお菓子が入っています。

あなたは、連続したいくつかの箱からお菓子を取り出して MM 人の子供たちに均等に配りたいと考えています。

そこで、以下を満たす組 (l,r)(l, r) の総数を求めてください。

  • l,rl, r はともに整数であり 1lrN1 \leq l \leq r \leq N を満たす
  • Al+Al+1+...+ArA_l + A_{l+1} + ... + A_rMM の倍数である

制約

  • 入力は全て整数である
  • 1N1051 \leq N \leq 10^5
  • 2M1092 \leq M \leq 10^9
  • 1Ai1091 \leq A_i \leq 10^9

入力

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

NN MM

A1A_1 A2A_2 ...... ANA_N

出力

条件を満たす組 (l,r)(l, r) の総数を出力せよ。

出力の際には、出力が 3232 ビットの整数型に収まらない可能性があることに注意せよ。

3 2
4 1 5
3

各組 (l,r)(l, r) に対する和 Al+Al+1+...+ArA_l + A_{l+1} + ... + A_r は次のとおりであり、このうち 33 つが 22 の倍数です。

  • (1,1)(1, 1) に対する和: 44
  • (1,2)(1, 2) に対する和: 55
  • (1,3)(1, 3) に対する和: 1010
  • (2,2)(2, 2) に対する和: 11
  • (2,3)(2, 3) に対する和: 66
  • (3,3)(3, 3) に対する和: 55
13 17
29 7 5 7 9 51 7 13 8 55 42 9 81
6
10 400000000
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
25