Sum of all ordered pair-products from a given array
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:
- Initialize the variable, res=0 to store the sum of array elements
- Traverse the array, arr[] and add each element of the array to res.
- 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)
Please Login to comment...