题目描述
给定一个序列 a11,a12,a13,...,a1n,要求依次生成完整的序列 a,规则如下:
对于 2≤i≤n,ai1=ai−11。
对于 2≤i,j≤n,aij=(aij−1+ai−1j)×k。
现在有 q 次询问,每次给定 x,y,求 axy 的值。为了避免答案过大,额外给定 p,每次输出时对 p 取余。
输入格式
一共 q+2 行。
第一行,三个整数 n,k,q,p,用空格隔开。
第二行,一个序列 a11,a12,a13,...,a1n,用空格隔开。
接下来 q 行,每行两个数 x,y,用空格隔开。
输出格式
一共 q 行。
对于输入的每一次询问,输出单独的一行,即 axymodp 的值。
样例 #1
样例输入 #1
5 2 3 114514
6 9 8 1 4
1 5
2 3
4 4
样例输出 #1
316
296
11808
提示
对于 100% 的数据,1≤n,q≤4×105,1≤k,p,a1i≤108,1≤x,y≤n。