Open In App

Sum of all ordered pair-products from a given array

Improve
Improve
Like Article
Like
Save
Share
Report

Given an array arr[] of size N, the task is to find the sum of all products of ordered pairs that can be generated from the given array elements.
Examples:

Input: arr[] ={1, 2, 3}
Output: 36
Explanation:All possible pairs are {(1, 1), {1, 2}, {1, 3}, {2, 1}, {2, 2}, {2, 3}, {3, 1}, {3, 2}, {3, 3}}. Therefore, the sum of product of all pairs is 36.

Input : arr[]={3, 4, 1, 2, 5}
Output: 225 

Naive Approach: The simplest approach is to iterate through all possible pairs from the given array calculate the sum of product of all pair-products. 

Time Complexity: O(N2)
Auxiliary Space: O(1)

Efficient Approach: The above approach can be optimized based on the following observations:

arr[]={a1, a2, a3, a4 ….., an-1, an}
Now, sum of product of all  possible pairs is =
{
(a1 * a1) + (a1 * a2) + (a1 * a3) + …..+ (a1 * an-1) + (a1, an) +
(a2 * a1) + (a2 * a2) + (a2 * a3) + ….. + (a2 * an-1) + (a2 * an) +
(a3 * a1) + (a3 * a2) + (a3 * a3) + ….. + (a3 * an-1) + (a3, an) +
…………………………………………………………………………..
(an, * a1) + (an * a2), +(an * a3) + ….. + (an * an-1) + (an, an)
}

={
(a1 + a2+  a3 + …..+ an-1 +  an * (a1 + a2+  a3 + …..+ an-1 +  an
}
=(a1 + a2+  a3 + …..+ an-1 +  an )2

Follow the steps below to solve the problem: 

  1. Initialize the variable, res=0 to store the sum of array elements
  2. Traverse the array, arr[] and add each element of the array to res.
  3. Finally, print the square of the res as the required answer.

Below is the implementation of the above approach:

C++




// C++ program to implement
// the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to calculate the
// sum of all pair-products
int sumOfProd(int arr[], int N)
{
    // Stores sum of array
    int sum = 0;
 
    for (int i = 0; i < N; i++) {
 
        // Update sum of the array
        sum += arr[i];
    }
 
    return sum * sum;
}
 
// Driver Code
int main()
{
    int arr[] = { 2, 3, 1, 5, 4 };
    int N = sizeof(arr) / sizeof(arr[0]);
    cout << sumOfProd(arr, N);
    return 0;
}


Java




// Java program to implement
// the above approach
import java.util.*;
 
class GFG{
 
// Function to calculate the
// sum of all pair-products
static int sumOfProd(int arr[], int N)
{
     
    // Stores sum of array
    int sum = 0;
 
    for(int i = 0; i < N; i++)
    {
         
        // Update sum of the array
        sum += arr[i];
    }
    return sum * sum;
}
 
// Driver code
public static void main(String[] args)
{
    int arr[] = { 2, 3, 1, 5, 4 };
    int N = arr.length;
     
    System.out.print(sumOfProd(arr, N));
}
}
 
// This code is contributed by offbeat


Python3




# Python3 program to implement
# the above approach 
 
# Function to calculate the
# sum of all pair-products
def sumOfProd(arr, N):
     
    # Stores sum of array
    sum = 0
 
    for i in range(N):
         
        # Update sum of the array
        sum += arr[i]
 
    return sum * sum
 
# Driver Code
if __name__ == '__main__':
     
    arr = [ 2, 3, 1, 5, 4 ]
    N = len(arr)
     
    print(sumOfProd(arr, N))
 
# This code is contributed by SURENDRA_GANGWAR


C#




// C# program to implement 
// the above approach  
using System;
 
class GFG{
     
// Function to calculate the 
// sum of all pair-products 
static int sumOfProd(int[] arr, int N) 
     
    // Stores sum of array 
    int sum = 0; 
   
    for(int i = 0; i < N; i++)
    {
         
        // Update sum of the array 
        sum += arr[i]; 
    
    return sum * sum; 
}  
 
// Driver code
static void Main()
{
    int[] arr = { 2, 3, 1, 5, 4 }; 
    int N = arr.Length; 
     
    Console.WriteLine(sumOfProd(arr, N));
}
}
 
// This code is contributed by divyeshrabadiya07


Javascript




<script>
 
// JavaScript program for the above approach
 
// Function to calculate the
// sum of all pair-products
function sumOfProd(arr, N)
{
      
    // Stores sum of array
    let sum = 0;
  
    for(let i = 0; i < N; i++)
    {
          
        // Update sum of the array
        sum += arr[i];
    }
    return sum * sum;
}
  
// Driver Code
 
       let arr = [ 2, 3, 1, 5, 4 ];
    let N = arr.length;
      
    document.write(sumOfProd(arr, N));
 
// This code is contributed by souravghosh0416.
</script>


Output:

225

Time Complexity: O(N)

Auxiliary Space: O(1)



Last Updated : 07 May, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads