 Open in App
Not now

# Absolute difference between sum of even elements at even indices & odd elements at odd indices in given Array

• Difficulty Level : Basic
• Last Updated : 13 Dec, 2021

Given an array arr[] containing N elements, the task is to find the absolute difference between the sum of even elements at even indices & the count of odd elements at odd indices. Consider 1-based indexing

Examples:

Input: arr[] = {3, 4, 1, 5}
Output: 0
Explanation: Sum of even elements at even indices: 4 {4}
Sum of odd elements at odd indices: 4 {3, 1}
Absolute Difference = 4-4 = 0

Input: arr[] = {4, 2, 1, 3}
Output: 1

Approach: The task can be solved by traversing the array from left to right, keeping track of sum of odd and even elements at odd & even indices respectively. Follow the steps below to solve the problem:

• Traverse the array from left to right.
• If the current index is even, check whether the element at that index is even or not, If it’s even, add it to the sum evens.
• If the current index is odd, check whether the element at that index is odd or not, If it’s odd, add it to the sum odds.
• Return the absolute difference between odds and evens.

Below is the implementation of the above approach.

## C++

 `// C++ program to implement the above approach``#include ``using` `namespace` `std;` `// Function to find the required absolute difference``int` `xorOr(``int` `arr[], ``int` `N)``{``    ``// Store the count of odds & evens at odd``    ``// and even indices respectively``    ``int` `evens = 0, odds = 0;` `    ``// Traverse the array to count even/odd``    ``for` `(``int` `i = 0; i < N; i++) {``        ``if` `((i + 1) % 2 == 0``            ``&& arr[i] % 2 == 0)``            ``evens += arr[i];``        ``else` `if` `((i + 1) % 2 != 0``                 ``&& arr[i] % 2 != 0)``            ``odds += arr[i];``    ``}` `    ``return` `abs``(odds - evens);``}` `// Driver Code``int` `main()``{``    ``int` `arr[] = { 3, 4, 1, 5 };``    ``int` `N = ``sizeof``(arr) / ``sizeof``(arr);``    ``cout << xorOr(arr, N);``    ``return` `0;``}`

## Java

 `// Java code for the above approach``import` `java.util.*;``class` `GFG``{``  ` `// Function to find the required absolute difference``static` `int` `xorOr(``int` `arr[], ``int` `N)``{``    ``// Store the count of odds & evens at odd``    ``// and even indices respectively``    ``int` `evens = ``0``, odds = ``0``;` `    ``// Traverse the array to count even/odd``    ``for` `(``int` `i = ``0``; i < N; i++) {``        ``if` `((i + ``1``) % ``2` `== ``0``            ``&& arr[i] % ``2` `== ``0``)``            ``evens += arr[i];``        ``else` `if` `((i + ``1``) % ``2` `!= ``0``                 ``&& arr[i] % ``2` `!= ``0``)``            ``odds += arr[i];``    ``}` `    ``return` `Math.abs(odds - evens);``}` `// Driver Code``    ``public` `static` `void` `main (String[] args) {``       ``int` `arr[] = { ``3``, ``4``, ``1``, ``5` `};``    ``int` `N = arr.length;``     ` `        ``System.out.println(xorOr(arr, N));``    ``}``}` `// This code is contributed by Potta Lokesh`

## Python3

 `# Python code for the above approach` `# Function to find the required absolute difference``def` `xorOr(arr, N):``  ` `    ``# Store the count of odds & evens at odd``    ``# and even indices respectively``    ``evens ``=` `0``;``    ``odds ``=` `0``;` `    ``# Traverse the array to count even/odd``    ``for` `i ``in` `range``(N):``        ``if` `((i ``+` `1``) ``%` `2` `=``=` `0` `and` `arr[i] ``%` `2` `=``=` `0``):``            ``evens ``+``=` `arr[i];``        ``elif` `((i ``+` `1``) ``%` `2` `!``=` `0` `and` `arr[i] ``%` `2` `!``=` `0``):``            ``odds ``+``=` `arr[i];` `    ``return` `abs``(odds ``-` `evens);` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ``arr ``=` `[``3``, ``4``, ``1``, ``5``];``    ``N ``=` `len``(arr);` `    ``print``(xorOr(arr, N));` `# This code is contributed by 29AjayKumar`

## C#

 `// C# code for the above approach``using` `System;``using` `System.Collections;``class` `GFG``{``  ` `// Function to find the required absolute difference``static` `int` `xorOr(``int` `[]arr, ``int` `N)``{``  ` `    ``// Store the count of odds & evens at odd``    ``// and even indices respectively``    ``int` `evens = 0, odds = 0;` `    ``// Traverse the array to count even/odd``    ``for` `(``int` `i = 0; i < N; i++) {``        ``if` `((i + 1) % 2 == 0``            ``&& arr[i] % 2 == 0)``            ``evens += arr[i];``        ``else` `if` `((i + 1) % 2 != 0``                 ``&& arr[i] % 2 != 0)``            ``odds += arr[i];``    ``}` `    ``return` `Math.Abs(odds - evens);``}` `// Driver Code``public` `static` `void` `Main () {``    ``int` `[]arr = { 3, 4, 1, 5 };``    ``int` `N = arr.Length;``     ` `        ``Console.Write(xorOr(arr, N));``}``}` `// This code is contributed by Samim Hossain Mondal.`

## Javascript

 ``

Output

`0`

Time Complexity: O(N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up