Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

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

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

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 <bits/stdc++.h>
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




<script>
 
// JavaScript implementation of above approach
 
// Function to find sum
// of array excluding the
// range which has [a, b]
function sumexcludingrange(li, a, b)
{
    let sum = 0;
    let add = true;
     
    // Loop in li
    for(let 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
    document.write(sum);
}
 
// Driver Code
let lis = [ 1, 2, 4, 5, 6 ];
let a = 2;
let b = 5;
 
sumexcludingrange(lis, a, b);
 
// This code is contributed by sravan kumar
 
</script>

Output

7

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


My Personal Notes arrow_drop_up
Last Updated : 14 Oct, 2022
Like Article
Save Article
Similar Reads
Related Tutorials