For this Question: Given an array A of N integers. The task is to count the number of ways to split given array elements into two disjoint groups, such that XOR of elements of each group is equal.The first line contains a single integer N, denoting the number of elements of the array.
The second line contains N integers.

1 <= N <= 50
1 <= A[i] <= 255Print a single integer denoting the number of ways to split the array into two groups with equal xor.

Note: The output may not fit in INT data typeSample Input:
3
1 2 3

Sample Output:
3

Explanation:
{(1), (2, 3)}, {(2), (1, 3)}, {(3), (1, 2)} are three ways with equal XOR value of two groups.

Sample Input:
4
5 2 3 2

Sample Output:
0, I have written this Solution Code: #include<bits/stdc++.h> 
using namespace std; 

#define int long long int
  
int a[55];

int countgroup(int n) 
{ 
  int xs = 0; 
  for (int i = 0; i < n; i++) 
    xs = xs ^ a[i]; 
  
  // We can split only if XOR is 0. Since 
  // XOR of all is 0, we can consider all 
  // subsets as one group. 
  if (xs == 0) 
    return (1LL << (n-1)) - 1; 
  
  return 0; 
} 
  
// Driver Program 
signed main() 
{ 
  int n;	cin >> n;
  for(int i = 0; i < n; i++)
  	cin >> a[i];
  cout << countgroup(n);
  return 0; 
}  , In this Programming Language: C++, Now tell me if this Code is compilable or not?