题目描述
我们有一个包含 k 个数字的序列:d0,d1,...,dk−1。
按顺序处理以下 q 个查询:
- 第 i 个查询包含三个整数 ni, xi, 和 mi。令 a0,a1,...,ani−1 为包含 ni 个数字的序列:\[
\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}
\] 输出满足 $(a_j~\textrm{mod}~m_i) < (a_{j + 1}~\textrm{mod}~m_i)$ 的 j (0≤j<ni−1) 的数量。
这里 (y mod z) 表示整数 y 除以 z 的余数,其中 y 和 z (z>0) 是整数。
约束条件
- 输入中的所有值都是整数。
- 1≤k,q≤5000
- 0≤di≤109
- 2≤ni≤109
- 0≤xi≤109
- 2≤mi≤109
输入
从标准输入读入输入数据,输入格式如下:
k q
d0 d1 ... dk−1
n1 x1 m1
n2 x2 m2
:
nq xq mq
输出
输出 q 行。
第 i 行应包含对第 i 个查询的响应。
示例输入 1
3 1
3 1 4
5 3 2
示例输出 1
1
对于第一个查询,序列 {aj} 将是 3,6,7,11,14。
- (a0 mod 2)>(a1 mod 2)
- (a1 mod 2)<(a2 mod 2)
- (a2 mod 2)=(a3 mod 2)
- (a3 mod 2)>(a4 mod 2)
因此,该查询的响应应为 1。
示例输入 2
7 3
27 18 28 18 28 46 1000000000
1000000000 1 7
1000000000 2 10
1000000000 3 12
示例输出 2
224489796
214285714
559523809