You are given an array `ARR`

containing `N`

integers, and you are also given an integer `TARGET`

. You task is to find the count of triplets i, j, k ( 0 ≤ i < j < k < N ), such that `ARR[i]`

+ `ARR[j]`

+ `ARR[j]`

is less than the value of `TARGET`

.

**For example:**

If `N`

= 7, `ARR`

= { 1, 5, 2, 3, 4, 6, 7 } and `TARGET`

= 9 Then, there are three triplets with sum less than 9:

- {1, 5, 2}
- {1, 2, 3}
- {1, 2, 4}
- {1, 3, 4} Thus, the output will be 4.

### Input Format:

The first line contains a single integer `N`

, denoting the size of the array.

The second line of contains `N`

integers of the array `ARR`

, denoting the array elements.

The third line contains a single integer `TARGET`

, denoting the target value to evaluate the smaller sum.

### Output Format:

Print the count of triplets having a sum less than the given target value.

### Example 1:

**Input:**

7 1 5 2 3 4 6 7 9

**Output:**

4

**Explanation:**

We will print 4 because:

The following four triplets have sum less than 9: {1, 5, 2}, {1, 2, 3}, {1, 2, 4} and {1, 3, 4}.

### Example 2:

**Input:**

6 -1 0 2 3 4 6 4

**Output:**

3

**Explanation:**

We will print 3 because:

The following three triplets have sum less than 4: {-1, 0, 2}, {-1, 0, 3} and {-1, 0, 4}.

### Constraints:

1 ≤ `N`

≤ 1000

-100 ≤ `ARR[i]`

≤ 100

-100 ≤ `TARGET`

≤ 100

## Solution of Smaller Than Triplet Sum in java:–

import java.util.*; import java.lang.*; import java.io.*; public class Main { static int check (int A[], int n, int p){ int l=0, r=n-1; int ans = -1; while(l<=r){ int mid = (l+r)/2; if(A[mid]<p){ ans = mid; l = mid+1; }else r = mid-1; } return ans+1; } public static void main (String[] args) throws java.lang.Exception { //your code here Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int A[] = new int[n]; for(int i=0;i<n;i++){ A[i] = sc.nextInt(); } int t = sc.nextInt(); Arrays.sort(A); int count = 0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ int x = check(A,n,t-A[i]-A[j]); if(A[i]<t-A[i]-A[j])x--; if(A[j]<t-A[i]-A[j])x--; count += x; } } System.out.println(count/3); } }

## Add a Comment