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 = 4Output:4 4 4 4 4Explanation:

Each subarray of length 1 has Xor value equal to 4.

Input:N = 5, K = 2, X = 4Output:4 0 4 0 4Explanation:

Each subarray of length 2 has Xor value equal to 4.

**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:
A[i] = X, when

**i % K == 0**

A[i] = 0, when**i % K != 0**where i is in the range**[0,N – 1]**

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 <bits/stdc++.h>` `using` `namespace` `std;` ` ` `// Function to construct the array` `void` `constructArray(` `int` `N, ` `int` `K, ` `int` `X)` `{` ` ` ` ` `// Creating a vector of size K,` ` ` `// initialised with 0` ` ` `vector<` `int` `> 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 code` `int` `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 X ` `class` `GFG{` ` ` `// Function to construct the array ` `public` `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 code` `public` `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 array ` `def` `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 code ` `N ` `=` `5` `K ` `=` `2` `X ` `=` `4` ` ` `# Function call` `constructArray(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 X ` `using` `System;` ` ` `class` `GFG{` ` ` `// Function to construct the array ` `public` `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 code` `public` `static` `void` `Main(` `string` `[] args)` `{` ` ` `int` `N = 5, K = 2, X = 4; ` ` ` ` ` `constructArray(N, K, X); ` `}` `}` ` ` `// This code is contributed by rutvik_56` |

**Output:**

4 0 4 0 4

**Time Complexity:*** O(N)*

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****.**