1361 维护队列

1361 维护队列

题目描述
假期刚过,A君就接到了一份维护的任务。
初始时A君拥有一个空队列,这个队列可容纳的元素个数最多为n,接下来有若干个整数需要依次加入,设当前要加入的整数为X;
若X不在当前队列中且队列未满,直接将X将加入到对尾。
若X不在当前队列中且队列已满,则将当前队列中队头元素弹出,并将X加入到队尾。
若X已在当前队列中,则将X从当前位置移动到队尾。
X已在队列中指的是当前队列中某个元素的值也等于X.
A君很快完成了任务,为了测试维护是否正确,A君依次加入了q个整数。现在请你帮忙核对。
令第i次加入的整数位xi,为了方便测试xi=(A*x(i-1)+B)mod p(其中i-1是下标),其中x1,A,B,p已给定。
为了方便核对,令第i次加入元素后,队列中所有元素的和为yi,你只需要告诉A君()mod2^64的值即可。
输入格式
第一行两个整数n,q表示队列可容纳的元素个数以及测试时加入的元素个数。
第二行四个整数xi,A,B,P,意义见题目描述。
输出格式

仅一行一个整数表示()mod2^64

输入样例
样例1
input
5 10
0 1 1 5
Output
485
数据范围
20%的数据:n,q<100;
另有20%数据:p<=40;
另有20%数据:A=B=1;
另有B=0,p是质数
100%的数据:1<=n<=10^5,0<=p<=10^6+3;