题目描述
長さ 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 < 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) の個数を出力する。
ここで 2 つの整数 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 番目のクエリに対する答えを出力せよ。
题目大意
有一个长度为 k 的序列 d0,d1,…,dk−1。
有 q 组询问,每组询问给出三个数 n,x,m, 同时定义长度为 n 的序列a0,a1,…,an−1,其中:
$$a_j=
\begin{cases}
x& j=0 \\
a_{j-1}+d_{(j-1)\mod k}&0<j\leq n-1
\end{cases}
$$
对于每组询问,请回答有多少个 j 满足 0≤j<n−1 且 (ajmodm)<(aj+1modm)。
数据范围:$1\leq k,q\leq 5000,0\leq d_i,x\leq 10^9,2\leq n,m\leq 10^9$,所有的数均为整数。
3 1
3 1 4
5 3 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
Sample Explanation 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 です。