Related Articles
Replace every element of array with sum of elements on its right side
• Difficulty Level : Medium
• Last Updated : 30 Mar, 2021

Given an array arr[], the task is to replace every element of the array with the sum of elements on its right side.
Examples:

Input: arr[] = {1, 2, 5, 2, 2, 5}
Output: 16 14 9 7 5 0

Input: arr[] = {5, 1, 3, 2, 4}
Output: 10 9 6 4 0

Naive Approach: A simple approach is to run two loops, Outer loop to fix each element one by one and inner loop to calculate sum of elements on right side of fixed element.
Time Complexity:
Efficient Approach: The idea is to compute the total sum of the array and then update the current element as the and in each step update the sum to the current element.

```for i in arr:
arr[i] = sum - arr[i]
sum = arr[i]```

Below is the implementation of the above approach:

## C++

 `// C++ program to Replace every``// element of array with sum of``// elements on its right side``#include``using` `namespace` `std;` `// Function to replace every element``// of the array to the sum of elements``// on the right side of the array``void` `replaceElement(``int` `arr[], ``int` `n)``{``    ``int` `sum = 0;` `    ``// Calculate sum of all``    ``// elements of array``    ``for``(``int` `i = 0; i < n; i++)``       ``sum += arr[i];` `    ``// Traverse the array``    ``for``(``int` `i = 0; i < n; i++)``    ``{``        ` `       ``// Replace current element``       ``// of array with sum-arr[i]``       ``arr[i] = sum - arr[i];``       ` `       ``// Update sum with arr[i]``       ``sum = arr[i];``    ``}``    ` `    ``// Print modified array``    ``for``(``int` `i = 0; i < n; i++)``       ``cout << arr[i] << ``" "``;``}` `// Driver code``int` `main()``{``    ``int` `arr[] = { 1, 2, 5, 2, 2, 5 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr[0]);``    ` `    ``replaceElement(arr, n);``}` `// This code is contributed by Surendra_Gangwar`

## Java

 `// Java program to Replace every``// element of array with sum of``// elements on its right side` `import` `java.util.*;``class` `GFG {` `    ``// Function to replace every element``    ``// of the array to the sum of elements``    ``// on the right side of the array``    ``static` `void` `replaceElement(``int``[] arr, ``int` `n)``    ``{``        ``int` `sum = ``0``;` `        ``// Calculate sum of all``        ``// elements of array``        ``for` `(``int` `i = ``0``; i < n; i++)``            ``sum += arr[i];` `        ``// Traverse the array``        ``for` `(``int` `i = ``0``; i < n; i++) {` `            ``// Replace current element``            ``// of array with sum-arr[i]``            ``arr[i] = sum - arr[i];` `            ``// Update sum with arr[i]``            ``sum = arr[i];``        ``}` `        ``// Print modified array``        ``for` `(``int` `i = ``0``; i < n; i++)``            ``System.out.print(arr[i] + ``" "``);``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int``[] arr = { ``1``, ``2``, ``5``, ``2``, ``2``, ``5` `};``        ``int` `n = arr.length;``        ``replaceElement(arr, n);``    ``}``}`

## Python3

 `# Python3 program to replace every``# element of array with sum of``# elements on its right side` `# Function to replace every element``# of the array to the sum of elements``# on the right side of the array``def` `replaceElement(arr, n):``    ` `    ``sum` `=` `0``;` `    ``# Calculate sum of all``    ``# elements of array``    ``for` `i ``in` `range``(``0``, n):``        ``sum` `+``=` `arr[i];``        ` `    ``# Traverse the array``    ``for` `i ``in` `range``(``0``, n):``        ` `        ``# Replace current element``        ``# of array with sum-arr[i]``        ``arr[i] ``=` `sum` `-` `arr[i];``        ` `        ``# Update sum with arr[i]``        ``sum` `=` `arr[i];``    ` `    ``# Print modified array``    ``for` `i ``in` `range``(``0``, n):``        ``print``(arr[i], end ``=` `" "``);` `# Driver Code``if` `__name__ ``=``=` `"__main__"``:``    ` `    ``arr ``=` `[ ``1``, ``2``, ``5``, ``2``, ``2``, ``5` `]``    ``n ``=` `len``(arr)``    ` `    ``replaceElement(arr, n)``    ` `# This code is contributed by Ritik Bansal`

## C#

 `// C# program to Replace every``// element of array with sum of``// elements on its right side``using` `System;``class` `GFG{` `// Function to replace every element``// of the array to the sum of elements``// on the right side of the array``static` `void` `replaceElement(``int``[] arr, ``int` `n)``{``    ``int` `sum = 0;` `    ``// Calculate sum of all``    ``// elements of array``    ``for` `(``int` `i = 0; i < n; i++)``        ``sum += arr[i];` `    ``// Traverse the array``    ``for` `(``int` `i = 0; i < n; i++)``    ``{` `        ``// Replace current element``        ``// of array with sum-arr[i]``        ``arr[i] = sum - arr[i];` `        ``// Update sum with arr[i]``        ``sum = arr[i];``    ``}` `    ``// Print modified array``    ``for` `(``int` `i = 0; i < n; i++)``        ``Console.Write(arr[i] + ``" "``);``}` `// Driver code``public` `static` `void` `Main()``{``    ``int``[] arr = { 1, 2, 5, 2, 2, 5 };``    ``int` `n = arr.Length;``    ``replaceElement(arr, n);``}``}` `// This code is contributed by Nidhi_biet`
Output:
`16 14 9 7 5 0`

Time Complexity: O(N)

Auxiliary Space: O(1)

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.

My Personal Notes arrow_drop_up