# Optimize the Program to generate the sum of the triplets

1 Reputation point
2020-06-17T05:18:57.94+00:00

**Given an array of positive integers of size n. A triplet(i,j,k) is said to be amazing if these two condition hold:

1. i&lt;j&lt;k
2. Ai &lt; Aj, Ak Value of an amazing triplet(i,j,k)=Ai+(Aj*Ak) Find the maximum value among all possible values of amazing triplets. if there are no amazing triplets then print -1. Input: a[] = 13 16 2 7 3 18 19 6 15 11 17 Output: 358**

I have written the program, it is working fine, but here i need help to optimize it for the performance, i have used multiple for loops, Need guidance to optimize the code.

// C# program to find maximum triplet sum using System;

class GFG {

``````// Function to calculate maximum triplet sum
static int maxTripletSum(int[] arr, int n)
{

int ans = 0;

for (int i = 1; i &amp;lt; n - 1; ++i)
{
int max1 = 0, max2 = 0;

// find maximum value(less than
// arr[i]) from i+1 to n-1
for (int j = 0; j &amp;lt; i; ++j)
if (arr[j] &amp;lt; arr[i])
max1 = Math.Max(max1, arr[j]);

// find maximum value(greater than
// arr[i]) from i+1 to n-1
for (int j = i + 1; j &amp;lt; n; ++j)
if (arr[j] &amp;gt; arr[i])
max2 = Math.Max(max2, arr[j]);

if(max1 &amp;amp;&amp;amp; max2)
ans = Math.Max(ans, max1 + (arr[i] * max2));
}

return ans;
}

// Driver code
public static void Main()
{

int[] arr = { 13, 16, 2, 7, 3, 18, 19, 6, 15, 11, 17};
int n = arr.Length;

Console.WriteLine(maxTripletSum(arr, n));
}
``````

}

Not Monitored

1. Anonymous
2020-06-17T12:23:56.017+00:00

C# is not currently supported here on QnA. They're actively answering question in dedicated forums here.