Related Articles
Sum of the sums of all possible subsets
• Difficulty Level : Easy
• Last Updated : 21 Apr, 2021

Given an array a of size N. The task is to find the sum of the sums of all possible subsets.
Examples:

Input: a[] = {3, 7}
Output: 20
The subsets are: {3} {7} {3, 7}
{3, 7} = 10
{3} = 3
{7} = 7
10 + 3 + 7 = 20
Input: a[] = {10, 16, 14, 9}
Output: 392

Naive Approach: A naive approach is to find all the subsets using power set and then summate all the possible subsets to get the answer.
Time Complexity: O(2N)
Efficient Approach: An efficient approach is to solve the problem using observation. If we write all the subsequences, a common point of observation is that each number appears 2(N – 1) times in a subset and hence will lead to the 2(N-1) as the contribution to the sum. Iterate through the array and add (arr[i] * 2N-1) to the answer.
Below is the implementation of the above approach:

## C++

 `// C++ program to find the sum of``// the addition of all possible subsets.``#include ``using` `namespace` `std;` `// Function to find the sum``// of sum of all the subset``int` `sumOfSubset(``int` `a[], ``int` `n)``{``    ``int` `times = ``pow``(2, n - 1);` `    ``int` `sum = 0;` `    ``for` `(``int` `i = 0; i < n; i++) {``        ``sum = sum + (a[i] * times);``    ``}` `    ``return` `sum;``}` `// Driver Code``int` `main()``{``    ``int` `a[] = { 3, 7 };``    ``int` `n = ``sizeof``(a) / ``sizeof``(a);``    ``cout << sumOfSubset(a, n);``}`

## Java

 `// Java program to find the sum of``// the addition of all possible subsets.``class` `GFG``{``    ` `// Function to find the sum``// of sum of all the subset``static` `int` `sumOfSubset(``int` `[]a, ``int` `n)``{``    ``int` `times = (``int``)Math.pow(``2``, n - ``1``);` `    ``int` `sum = ``0``;` `    ``for` `(``int` `i = ``0``; i < n; i++)``    ``{``        ``sum = sum + (a[i] * times);``    ``}` `    ``return` `sum;``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``    ``int` `[]a = { ``3``, ``7` `};``    ``int` `n = a.length;``    ``System.out.println(sumOfSubset(a, n));``}``}` `// This code is contributed by 29AjayKumar`

## Python3

 `# Python3 program to find the Sum of``# the addition of all possible subsets.` `# Function to find the sum``# of sum of all the subset``def` `SumOfSubset(a, n):` `    ``times ``=` `pow``(``2``, n ``-` `1``)` `    ``Sum` `=` `0` `    ``for` `i ``in` `range``(n):``        ``Sum` `=` `Sum` `+` `(a[i] ``*` `times)` `    ``return` `Sum` `# Driver Code``a ``=` `[``3``, ``7``]``n ``=` `len``(a)``print``(SumOfSubset(a, n))` `# This code is contributed by Mohit Kumar`

## C#

 `// C# program to find the sum of``// the addition of all possible subsets.``using` `System;` `class` `GFG``{``    ` `// Function to find the sum``// of sum of all the subset``static` `int` `sumOfSubset(``int` `[]a, ``int` `n)``{``    ``int` `times = (``int``)Math.Pow(2, n - 1);` `    ``int` `sum = 0;` `    ``for` `(``int` `i = 0; i < n; i++)``    ``{``        ``sum = sum + (a[i] * times);``    ``}` `    ``return` `sum;``}` `// Driver Code``public` `static` `void` `Main()``{``    ``int` `[]a = { 3, 7 };``    ``int` `n = a.Length;``    ``Console.Write(sumOfSubset(a, n));``}``}` `// This code is contributed by Nidhi`

## Javascript

 ``
Output:
`20`

Time Complexity: O(N)
Space Complexity: O(1)
Note: If N is large, the answer can overflow, thereby use larger data-type.

My Personal Notes arrow_drop_up