Problem Description
MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to know the xor of all (n)
The xor of an array B is defined as n
The xor of an array B is defined as n
Input
Multiple test cases, the first line contains an integer T(no more than 20), indicating the number of cases.
Each test case contains four integers:5
Each test case contains four integers:5
Output
For every test.print the answer.
Sample Input
2
3 5 5 7
6 8 8 9
Sample Output
14
16
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
typedef long long ll;
const int maxn = 0x3f3f3f3f;
using namespace std;
ll a[500010];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,m,k,l;
memset(a,0,sizeof(a));
scanf("%d%d%d%d",&n,&m,&k,&l);
a[1] = 0;
for(int i = 2;i <= n;i++)
a[i] = (a[i-1]*m+k)%l;
for(int i = 2;i <= n;i++)
a[i]^=a[i-1];
printf("%I64d\n",a[n]*2);
}
return 0;
}