#P5175. 数列

数列

数列

  • 时间限制:1.5 秒
  • 内存限制:64 MiB

题目描述

给定数列 {an}\{a_n\} 的前两项 a1,a2a_1,a_2。对于 n≥3n\ge 3,数列满足

an=xan−1+yan−2.a_n=x a_{n-1}+y a_{n-2}.

求

∑i=1nai2\sum_{i=1}^{n}a_i^2

对 109+710^9+7 取模后的值。

输入格式

第一行一个整数 TT,表示数据组数。

接下来 TT 行,每行五个整数 n,a1,a2,x,yn,a_1,a_2,x,y,表示一组询问。

输出格式

输出 TT 行,每行一个整数,表示对应询问的答案。

样例输入

3
5 1 1 1 1
4 3 4 3 2
461564597527246 987489553 321654648 164165256 315648984

样例输出

40
4193
480929868

样例说明

第一组数列的前五项为 1,1,2,3,51,1,2,3,5,平方和为 4040。

第二组数列的前四项为 3,4,18,623,4,18,62,平方和为 41934193。

数据范围

对于所有数据,1≤T≤300001\le T\le 30000,1≤n≤10181\le n\le 10^{18},1≤a1,a2,x,y≤1091\le a_1,a_2,x,y\le 10^9。

一份输入中各组询问的 nn 之和记为 ∑n\sum n。

子任务编号 分值 特殊限制
1 20 ∑n≤106\sum n\le 10^6
2 40 对所有询问均有 x=y=1x=y=1
3 无特殊限制

本题采用独立测试点计分。