GeeksforGeeks App
Open App
Browser
Continue

Sum of array elements excluding the elements which lie between a and b

Given an array of N unique numbers. Also given two numbers a and b such that a will always be before b in the array. The task is to find the sum of the array elements excluding the elements which lie between a and b.

Examples:

Input : arr = [2, 1, 6, 9, 11], a = 6, b = 9
Output : 14

Input : arr = [1, 2, 4, 5, 6], a = 2, b = 5
Output : 7

Approach: Traverse in the array, keep adding the array elements until we find a. Continue iteration until b is found and do not add array elements to the sum. After b is found, add array elements to the sum till the end. Once the iteration is completed, return the sum.

Below is the implementation of the above approach:

C++

 `// CPP implementation of above approach``#include ``using` `namespace` `std;` `// Function to find sum``// of array excluding the``// range which has [a, b]``void` `sumexcludingrange(vector<``int``> li, ``int` `a, ``int` `b)``{``    ``int` `sum = 0;``    ``bool` `add = ``true``;` `    ``// loop in li``    ``int` `n = li.size();``    ``for` `(``int` `i = 0; i < n; i++) {` `        ``// if no != a then add``        ``if` `(li[i] != a && add == ``true``)``            ``sum = sum + li[i];` `        ``// mark when a``        ``// and b are found``        ``else` `if` `(li[i] == a)``            ``add = ``false``;``        ``else` `if` `(li[i] == b)``            ``add = ``true``;``    ``}` `    ``// print sum``    ``cout << (sum);``}` `// Driver Code``int` `main()``{``    ``vector<``int``> lis{ 1, 2, 4, 5, 6 };``    ``int` `a = 2;``    ``int` `b = 5;` `    ``sumexcludingrange(lis, a, b);``}``// This code is contributed by``// Sahil_Shelangia`

Java

 `// Java implementation of above approach` `// Function to find sum``// of array excluding the``// range which has [a, b]``import` `java.io.*;` `class` `GFG {``    ``static` `void` `sumexcludingrange(``int` `li[], ``int` `a, ``int` `b)``    ``{``        ``int` `sum = ``0``;``        ``boolean` `add = ``true``;` `        ``// loop in li``        ``for` `(``int` `i = ``0``; i < li.length; i++) {` `            ``// if no != a then add``            ``if` `(li[i] != a && add == ``true``)``                ``sum = sum + li[i];` `            ``// mark when a``            ``// and b are found``            ``else` `if` `(li[i] == a)``                ``add = ``false``;``            ``else` `if` `(li[i] == b)``                ``add = ``true``;``        ``}` `        ``// print sum``        ``System.out.print(sum);``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `lis[] = { ``1``, ``2``, ``4``, ``5``, ``6` `};``        ``int` `a = ``2``;``        ``int` `b = ``5``;` `        ``sumexcludingrange(lis, a, b);``    ``}``}` `// This code is contributed``// by anuj_67.`

Python3

 `# Python3 implementation of above approach` `# Function to find sum``# of array excluding the``# range which has [a, b]`  `def` `sumexcludingrange(li, a, b):` `    ``sum` `=` `0``    ``add ``=` `True` `    ``# loop in li``    ``for` `no ``in` `li:` `         ``# if no != a then add``        ``if` `no !``=` `a ``and` `add ``=``=` `True``:``            ``sum` `=` `sum` `+` `no` `        ``# mark when a and b are found``        ``elif` `no ``=``=` `a:``            ``add ``=` `False``        ``elif` `no ``=``=` `b:``            ``add ``=` `True` `    ``# print sum``    ``print``(``sum``)`  `lis ``=` `[``1``, ``2``, ``4``, ``5``, ``6``]``a ``=` `2``b ``=` `5` `sumexcludingrange(lis, a, b)`

C#

 `// C# implementation of above approach` `// Function to find sum``// of array excluding the``// range which has [a, b]` `using` `System;` `class` `GFG {``    ``static` `void` `sumexcludingrange(``int``[] li, ``int` `a, ``int` `b)``    ``{``        ``int` `sum = 0;``        ``bool` `add = ``true``;` `        ``// loop in li``        ``for` `(``int` `i = 0; i < li.Length; i++) {` `            ``// if no != a then add``            ``if` `(li[i] != a && add == ``true``)``                ``sum = sum + li[i];` `            ``// mark when a``            ``// and b are found``            ``else` `if` `(li[i] == a)``                ``add = ``false``;``            ``else` `if` `(li[i] == b)``                ``add = ``true``;``        ``}` `        ``// print sum``        ``Console.Write(sum);``    ``}` `    ``// Driver Code``    ``public` `static` `void` `Main()``    ``{``        ``int``[] lis = { 1, 2, 4, 5, 6 };``        ``int` `a = 2;``        ``int` `b = 5;` `        ``sumexcludingrange(lis, a, b);``    ``}``}`

Javascript

 ``

Output

`7`

Time complexity: O(n)
Auxiliary space: O(1)

My Personal Notes arrow_drop_up