#153. 丢丢陈的数列

传统 1000 ms 256 MiB
标准 IO
文本比较 admin 标签

题目描述

丢丢陈有一个长度为n的数列 a1,,ana_1,\ldots ,a_n ,和两个数字 P,QP,Q。由于丢丢陈很无聊他先对每个数字进行了如下操作

ai=ai7 mod Pa_i = {a_i}^7\ mod\ P

丢丢陈很想了解这个数列,他想知道数列的和对 QQ 取余数的结果,即 (a1+a2++an) mod Q(a_1+a_2+\ldots +a_n)\ mod\ Q

其中,modmod 为取余运算符,a mod ba\ mod\ b 的结果为 aabb 后的余数,例如 10 mod 3=110\ mod\ 3 = 1

输入格式

第一行仅有一个数字 T(1T3)T(1\le T\le 3) 代表数据组数。下面依次是每一组数据

每组数据第一行个数字 n,P,Q(2n105,1P1018,1Q109)n,P,Q(2\le n \le 10^5,1\le P \le 10^{18},1\le Q \le 10^9)

第二行 nn 个数字 ai(0ai1018)a_i(0\le a_i \le 10^{18})

输出格式

每组数据仅一行,代表变换后数列的和对 QQ 取余数的结果。

样例

样例输入

1
5 101 17
1 1 2 1 3

样例输出

11