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 = 20Input: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(2^{N})**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**as the contribution to the sum. Iterate through the array and add

^{(N-1)}**(arr[i] * 2**to the answer.

^{N-1})Below is the implementation of the above approach:

## C++

`// C++ program to find the sum of` `// the addition of all possible subsets.` `#include <bits/stdc++.h>` `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[0]);` ` ` `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

`<script>` `// javascript program to find the sum of` `// the addition of all possible subsets. ` `// Function to find the sum` ` ` `// of sum of all the subset` ` ` `function` `sumOfSubset(a , n) {` ` ` `var` `times = parseInt( Math.pow(2, n - 1));` ` ` `var` `sum = 0;` ` ` `for` `(i = 0; i < n; i++) {` ` ` `sum = sum + (a[i] * times);` ` ` `}` ` ` `return` `sum;` ` ` `}` ` ` `// Driver Code` ` ` ` ` `var` `a = [ 3, 7 ];` ` ` `var` `n = a.length;` ` ` `document.write(sumOfSubset(a, n));` `// This code is contributed by todaysgaurav` `</script>` |

**Output:**

20

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