atcoder#ABC156F. [ABC156F] Modularness

[ABC156F] Modularness

Score : 600600 points

Problem Statement

We have a sequence of kk numbers: d0,d1,...,dk1d_0,d_1,...,d_{k - 1}.

Process the following qq queries in order:

  • The ii-th query contains three integers nin_i, xix_i, and mim_i. Let a0,a1,...,ani1a_0,a_1,...,a_{n_i - 1} be the following sequence of nin_i numbers: [ \begin{aligned} a_j = \begin{cases} x_i & ( j = 0 ) \ a_{j - 1} + d_{(j - 1)~\textrm{mod}~k} & ( 0 < j \leq n_i - 1 ) \end{cases}\end{aligned} ] Print the number of j(0j<ni1)j \sim (0 \leq j < n_i - 1) such that $(a_j \sim \textrm{mod} \sim m_i) < (a_{j + 1} \sim \textrm{mod} \sim m_i)$.

Here (ymodz)(y \sim \textrm{mod} \sim z) denotes the remainder of yy divided by zz, for two integers yy and z(z>0)z \sim (z > 0).

Constraints

  • All values in input are integers.
  • 1k,q50001 \leq k, q \leq 5000
  • 0di1090 \leq d_i \leq 10^9
  • 2ni1092 \leq n_i \leq 10^9
  • 0xi1090 \leq x_i \leq 10^9
  • 2mi1092 \leq m_i \leq 10^9

Input

Input is given from Standard Input in the following format:

kk qq

d0d_0 d1d_1 ...... dk1d_{k - 1}

n1n_1 x1x_1 m1m_1

n2n_2 x2x_2 m2m_2

::

nqn_q xqx_q mqm_q

Output

Print qq lines.

The ii-th line should contain the response to the ii-th query.

3 1
3 1 4
5 3 2
1

For the first query, the sequence {aja_j} will be 3,6,7,11,143,6,7,11,14.

  • $(a_0 \sim \textrm{mod} \sim 2) > (a_1 \sim \textrm{mod} \sim 2)$
  • $(a_1 \sim \textrm{mod} \sim 2) < (a_2 \sim \textrm{mod} \sim 2)$
  • $(a_2 \sim \textrm{mod} \sim 2) = (a_3 \sim \textrm{mod} \sim 2)$
  • $(a_3 \sim \textrm{mod} \sim 2) > (a_4 \sim \textrm{mod} \sim 2)$

Thus, the response to this query should be 11.

7 3
27 18 28 18 28 46 1000000000
1000000000 1 7
1000000000 2 10
1000000000 3 12
224489796
214285714
559523809