Here in this problem, we are given 3 arrays a, b and c of different sizes, find the number of distinct triplets(p,q,r) where p is an element of a, written as

p \;\epsilon \;a ,\;\; q\epsilon b \;\; and\;\;r\epsilon c
satisfying the criteria:

p\leq q and q\geq r Read the full question on hackerrank

## Explanation Video:

Youtube Channel partner: CodingCart

Mentor: Satyendra Jaiswal

Langauge: Python

## Source Code: for `triplets`

function

```
# Complete the triplets function below.
def triplets(a, b, c):
a=sorted(set(a))
b=sorted(set(b))
c=sorted(set(c))
count=m=n=0
for v in b:
while m < len(a) and a[m]<=v: #p<=q
m+=1
while n < len(c) and c[n]<=v: #r<=q
n+=1
count+=m*n
return count
```

coming soon…

coming soon…

## Full Source Code:

```
#!/bin/python3
import math
import os
import random
import re
import sys
# Complete the triplets function below.
def triplets(a, b, c):
a=sorted(set(a))
b=sorted(set(b))
c=sorted(set(c))
count=m=n=0
for v in b:
while m < len(a) and a[m]<=v: #p<=q
m+=1
while n < len(c) and c[n]<=v: #r<=q
n+=1
count+=m*n
return count
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
lenaLenbLenc = input().split()
lena = int(lenaLenbLenc[0])
lenb = int(lenaLenbLenc[1])
lenc = int(lenaLenbLenc[2])
arra = list(map(int, input().rstrip().split()))
arrb = list(map(int, input().rstrip().split()))
arrc = list(map(int, input().rstrip().split()))
ans = triplets(arra, arrb, arrc)
fptr.write(str(ans) + '\n')
fptr.close()
```

coming soon…

coming soon…

**Like this article?** Follow us on Facebook and LinkedIn. You can also subscribe to our Youtube Channel.

This post is in partnership with CodingCart.