余数序列
题目描述
有长度为 k 的数列 d0,d1,...,dk−1。
请依次处理以下 q 个查询。
- 第 i 个查询由 3 个整数 ni,xi,mi 组成。定义长度为 ni 的数列 a0,a1,...,ani−1 为:
$$\begin{aligned} a_j = \begin{cases} x_i & ( j = 0 ) \\ a_{j - 1} + d_{(j - 1)~\textrm{mod}~k} & ( 0 \lt j \leq n_i - 1 ) \end{cases}\end{aligned}$$
输出满足 $(a_j~\textrm{mod}~m_i) \lt (a_{j + 1}~\textrm{mod}~m_i)$ 的 j (0≤j<ni−1) 的个数。
这里,对于两个整数 y,z (z>0),(y mod z) 表示 y 除以 z 的余数。
输入格式
输入按以下格式从标准输入给出:
k q
d0 d1 ... dk−1
n1 x1 m1
n2 x2 m2
:
nq xq mq
输出格式
输出 q 行。
第 i 行输出第 i 个查询的答案。
样例
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。
7 3
27 18 28 18 28 46 1000000000
1000000000 1 7
1000000000 2 10
1000000000 3 12
224489796
214285714
559523809
数据范围
- 输入均为整数
- 1≤k,q≤5000
- 0≤di≤109
- 2≤ni≤109
- 0≤xi≤109
- 2≤mi≤109