# Create an array such that XOR of subarrays of length K is X

• Last Updated : 14 Aug, 2021

Given three integers N, K and X, the task is to construct an array of length N, in which XOR of all elements of each contiguous sub-array of length K is X.
Examples:

Input: N = 5, K = 1, X = 4
Output: 4 4 4 4 4
Explanation:
Each subarray of length 1 has Xor value equal to 4.
Input: N = 5, K = 2, X = 4
Output: 4 0 4 0 4
Explanation:
Each subarray of length 2 has Xor value equal to 4.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

Approach:
To solve the problem mentioned above, we need to follow the steps given below:

• Bitwise-XOR of any number, X with 0 is equal to the number itself. So, if we set the first element of the array A as X, and the next K – 1 elements as 0, then we will have the XOR of elements of first sub-array of length K, equal to X.
• If we set A[K] as A[0], then we will have XOR(A[1], …, A[K]) = X. Similarly, if we set A[K + 1] as A[1], then we will have XOR(A[2], …, A[K+1]) = X
• Continuing in this manner, we can observe that the general formula can be described as below:

Below is the implementation of the above approach:

## C++

 // C++ implementation to Create an array// in which the XOR of all elements of// each contiguous sub-array of// length K is X #include using namespace std; // Function to construct the arrayvoid constructArray(int N, int K, int X){     // Creating a vector of size K,    // initialised with 0    vector ans(K, 0);     // Initialising the first element    // with the given XOR    ans[0] = X;     for (int i = 0; i < N; ++i) {        cout << ans[i % K] << " ";    }     cout << endl;} // Driver codeint main(){    int N = 5, K = 2, X = 4;     constructArray(N, K, X);     return 0;}

## Java

 // Java implementation to create an array// in which the XOR of all elements of// each contiguous sub-array of// length K is Xclass GFG{     // Function to construct the arraypublic static void constructArray(int N, int K,                                         int X){         // Creating an array of size K,    // initialised with 0    int[] ans = new int[K];          // Initialising the first element    // with the given XOR    ans[0] = X;         for(int i = 0; i < N; ++i)    {       System.out.print(ans[i % K] + " ");    }} // Driver codepublic static void main(String[] args){    int N = 5, K = 2, X = 4;         constructArray(N, K, X);}} // This code is contributed by divyeshrabadiya07

## Python3

 # Python3 implementation to create an array# in which the XOR of all elements of# each contiguous sub-array of# length K is X # Function to construct the arraydef constructArray(N, K, X):         # Creating a list of size K,    # initialised with 0    ans = []         for i in range(0, K):        ans.append(0)             # Initialising the first element    # with the given XOR    ans[0] = X             for i in range(0, N):        print(ans[i % K], end = " ") # Driver codeN = 5K = 2X = 4 # Function callconstructArray(N, K, X) # This code is contributed by ishayadav181

## C#

 // C# implementation to create an array// in which the XOR of all elements of// each contiguous sub-array of// length K is Xusing System; class GFG{     // Function to construct the arraypublic static void constructArray(int N, int K,                                         int X){         // Creating an array of size K,    // initialised with 0    int[] ans = new int[K];         // Initialising the first element    // with the given XOR    ans[0] = X;         for(int i = 0; i < N; ++i)    {        Console.Write(ans[i % K] + " ");    }} // Driver codepublic static void Main(string[] args){    int N = 5, K = 2, X = 4;         constructArray(N, K, X);}} // This code is contributed by rutvik_56

## Javascript


Output:
4 0 4 0 4

Time Complexity: O(N)
Auxilary Space: O(K)

My Personal Notes arrow_drop_up