Print N distinct numbers following the given operations
Given an integer N which is always an even number, our task is to print N distinct numbers following the given conditions:
- The first half numbers are even whereas the other half numbers are odd
- Sum of the elements of first half numbers and sum of elements of second half numbers should be equal
Print the array if the above conditions satisfy otherwise output “-1”.
Input: N = 4
Output: 2 4 1 5
Given number 4 we are required to print 4 numbers. First Half = 2, 4 and their sum is 6, other half = 1, 5 and their sum is also 6.
Input: N = 22
It is not possible to print the required array.
To solve the problem mentioned above we have to observe that the integer N has to be a multiple of 4.
- We know that the sum of the first N/2 even numbers will be even, so if the sum of the other N/2 integers is also even then N/2 must be even, because the sum of an odd number of odd integers is always odd.
- If N/2 is even then N is a multiple of 4, so if n is not divisible by 4 then the answer is “-1”, otherwise, there will be a possible array.
- For printing the array we will consider two parts such that the first half that is N/2 elements will be simply multiples of 2 and the other half will be multiple of 2 – 1. For the last element in the array, we will calculate the integer by applying the direct formula N + N / 2 – 1 because we are supposed to make the sum for two halves equal.
Below is the implementation of the above approach:
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.