Function

Accepts: 6
Submissions: 72
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
定义函数 $ f(n) = (a+\sqrt{b})^n + (a-\sqrt{b})^n $,其中$a$和$b$都是整数。$(1 \leq a,b \leq 1,000,000)$  这个函数包含了复杂运算,但是可以证明它的值是整数。
在这个问题里,任务是计算 $ f(x^y)$。答案可能会很大,所以只需输出答案对$1,000,000,007$的模。
输入描述
输入包含多组数据. 第一行有一个整数$T (1\leq T\leq 15)$, 表示测试数据的组数. 对于每组数据:
一行包含四个整数 $a,b\ (1 \leq a,b \leq 1,000,000),\ x(1\leq x \leq 50),\ y(1\leq y \leq 10^{18})$。
输出描述
对于每组数据,输出一个整数。
输入样例
3
3 5 1 1
3 5 2 1
1 1 49 99999
输出样例
6
28
160106184