题目描述
TT最近对排序算法很感兴趣,
现在他碰到了一个排序题,
给出包含n个数字的数组,
现在有两种操作:
1:把1到x之间的数从小到大排序,
2:把1到x之间的数从大到小排序,
初始序列满足
a[i] = a[i-1]*x+a[i-2]*y+z;(i>=3);
现给出a[1],a[2],x,y,z;
q[1] = a[1]%n+1,q[2] = a[2]%n+1;
q[i] = (y*q[i-1]+x*q[i-2]+z)%n+1;(i>=3)
op[i] = q[i]%2+1;(i>=1);
(op[i] 为第i个操作的类型,q[i]为第i次操作的x);
输入
第一行:T(T<=30)T组
每组测试包含7个数字:a[1],a[2],x,y,z,n,q,(1<=a[1],a[2],x,y,z<=1e9; 0<=n,q<=1e5)数组包含n个数字,q次操作;
输出
ans = (a[1]*1+a[2]*2,,,a[n]*n)%1000000007,
样例输入
1
2 3 1 2 3 6 3
样例输出
806
提示
原始序列为:2 3 10 19 42 83
第一次操作为 2 3 ,10 3 2 19 42 83
第二次操作为 1 4 ,2 3 10 19 42 83
第三次操作为 2 3 ,10 3 2 19 42 83
来源/分类
2018浙江理工大学新生赛