#2087. 「2022 远光杯」递推数列的协奏曲

「2022 远光杯」递推数列的协奏曲

题目描述

若若最近学会了常系数齐次线性递推!他非常开心,每天对着各种数列算啊算。

不过这一天,他遇到了两个奇怪的数列:

Ai=(a−1)⋅Ai−1+a⋅Bi−1A_i = (a - 1) \cdot A_{i - 1} + a \cdot B_{i - 1} Bi=b⋅Ai−1+(b−1)⋅Bi−1B_i = b \cdot A_{i - 1} + (b - 1) \cdot B_{i - 1}

现在,若若已经知道一个数字 nn,以及常数 aa 和 bb,还有数列 AA 和 BB 的初值(A0A_0,B0B_0),他想请你帮忙算出 AnA_n。

输入格式

输入由多组数据构成。

第一行一个正整数 TT (1≤T≤1051 \leq T \leq 10^5),表示共有 TT 组数据。

对于每组数据:

第一行三个整数 nn (0≤n≤1090 \leq n \leq 10^9),aa (1≤a≤1091 \leq a \leq 10^9),bb (1≤b≤1091 \leq b \leq 10^9),用一个空格隔开,含义如题目描述所示。

第二行两个正整数 A0A_0 (1≤A0≤1091 \leq A_0 \leq 10^9) 和 B0B_0 (1≤B0≤1091 \leq B_0 \leq 10^9),用一个空格隔开,表示数列 AA 和 BB 的初值。

输出格式

对于每组数据,输出一行一个非负整数 xx,表示 AnA_n 对 109+710^9 + 7 取模的值。

样例

样例输入

1
1 5 7
2 3

样例输出

23