# Generate minimum sum sequence of integers with even elements greater

Given an integer N, the task is to generate a sequence of N positive integers such that:

• Every element at the even position must be greater than the element succeeding it and the element preceding it i.e. arr[i – 1] < arr[i] > arr[i + 1]
• Sum of the elements must be even and minimum possible (among all the possible sequences).

Examples:

Input: N = 4
Output: 1 2 1 2

Input: N = 5
Output: 1 3 1 2 1

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: In order to get the sequence with the minimum sum possible, the sequence must be of the form 1, 2, 1, 2, 1, 2, 1 … and for cases when the sum of the sequence is not even, any 2 from the sequence can be changed to a 3 to make the sum of the sequence even.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of above approach ` `#include ` `using` `namespace` `std; ` ` `  `// Function to print the required sequence ` `void` `make_sequence(``int` `N) ` `{ ` ` `  `    ``// arr[] will hold the sequence ` `    ``// sum variable will store the sum ` `    ``// of the sequence ` `    ``int` `arr[N + 1], sum = 0; ` ` `  `    ``for` `(``int` `i = 1; i <= N; i++) { ` ` `  `        ``if` `(i % 2 == 1) ` `            ``arr[i] = 1; ` `        ``else` `            ``arr[i] = 2; ` ` `  `        ``sum += arr[i]; ` `    ``} ` ` `  `    ``// If sum of the sequence is odd ` `    ``if` `(sum % 2 == 1) ` `        ``arr[2] = 3; ` ` `  `    ``// Print the sequence ` `    ``for` `(``int` `i = 1; i <= N; i++) ` `        ``cout << arr[i] << ``" "``; ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `N = 9; ` ` `  `    ``make_sequence(N); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java implementation of above approach ` ` `  `class` `GFG ` `{ ` ` `  `// Function to print the required sequence ` `static` `void` `make_sequence(``int` `N) ` `{ ` ` `  `    ``// arr[] will hold the sequence ` `    ``// sum variable will store the sum ` `    ``// of the sequence ` `    ``int``[] arr = ``new` `int``[N + ``1``]; ` `    ``int` `sum = ``0``; ` ` `  `    ``for` `(``int` `i = ``1``; i <= N; i++)  ` `    ``{ ` `        ``if` `(i % ``2` `== ``1``) ` `            ``arr[i] = ``1``; ` `        ``else` `            ``arr[i] = ``2``; ` ` `  `        ``sum += arr[i]; ` `    ``} ` ` `  `    ``// If sum of the sequence is odd ` `    ``if` `(sum % ``2` `== ``1``) ` `        ``arr[``2``] = ``3``; ` ` `  `    ``// Print the sequence ` `    ``for` `(``int` `i = ``1``; i <= N; i++) ` `        ``System.out.print(arr[i] + ``" "``); ` `} ` ` `  `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `N = ``9``; ` `    ``make_sequence(N); ` `} ` `} ` ` `  `// This code is contributed by iAyushRaj. `

## Python 3

 `# Python 3 implementation of above approach ` ` `  `# Function to print the required sequence ` `def` `make_sequence( N): ` ` `  `    ``# arr[] will hold the sequence ` `    ``# sum variable will store the sum ` `    ``# of the sequence ` `    ``arr ``=` `[``0``] ``*` `(N ``+` `1``) ` `    ``sum` `=` `0` ` `  `    ``for` `i ``in` `range``(``1``, N ``+` `1``): ` ` `  `        ``if` `(i ``%` `2` `=``=` `1``): ` `            ``arr[i] ``=` `1` `        ``else``: ` `            ``arr[i] ``=` `2` ` `  `        ``sum` `+``=` `arr[i] ` ` `  `    ``# If sum of the sequence is odd ` `    ``if` `(``sum` `%` `2` `=``=` `1``): ` `        ``arr[``2``] ``=` `3` ` `  `    ``# Print the sequence ` `    ``for` `i ``in` `range``(``1``, N ``+` `1``): ` `        ``print``(arr[i], end ``=` `" "``) ` ` `  `# Driver Code ` `if` `__name__ ``=``=` `"__main__"``: ` `     `  `    ``N ``=` `9` `    ``make_sequence(N) ` ` `  `# This code is contributed by ita_c `

## C#

 `// C# implementation of above approach ` `using` `System; ` ` `  `class` `GFG ` `{ ` ` `  `// Function to print the required sequence ` `public` `static` `void` `make_sequence(``int` `N) ` `{ ` ` `  `    ``// arr will hold the sequence ` `    ``// sum variable will store the sum ` `    ``// of the sequence ` `    ``int``[] arr = ``new` `int``[N + 1]; ` `    ``int` `sum = 0; ` ` `  `    ``for` `(``int` `i = 1; i <= N; i++) ` `    ``{ ` `        ``if` `(i % 2 == 1) ` `            ``arr[i] = 1; ` `        ``else` `            ``arr[i] = 2; ` ` `  `        ``sum += arr[i]; ` `    ``} ` ` `  `    ``// If sum of the sequence is odd ` `    ``if` `(sum % 2 == 1) ` `        ``arr[2] = 3; ` ` `  `    ``// Print the sequence ` `    ``for` `(``int` `i = 1; i <= N; i++) ` `        ``Console.Write(arr[i] + ``" "``); ` `} ` ` `  `// Driver Code ` `public` `static` `void` `Main() ` `{ ` `    ``int` `N = 9; ` ` `  `    ``make_sequence(N); ` `} ` `} ` ` `  `// This code is contributed by iAyushRaj. `

## PHP

 ` `

Output:

```1 3 1 2 1 2 1 2 1
```

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.