HackerRank Beautiful Triplets Problem Solution Yashwant Parihar, April 18, 2023April 19, 2023 In this post, we will solve HackerRank Beautiful Triplets Problem Solution.Given a sequence of integers a, a triplet (a[i], a[j], a[k]) is beautiful if:i<j<ka[j] = a[i] = a[k] – a[j] = dGiven an increasing sequenc of integers and the value of d. count the number of beautiful triplets in the sequence.Examplearr = [2, 2, 3, 4, 5]d = 1There are three beautiful triplets, by index: [i, j, k] = [0, 2, 3], [1, 2, 3], [2, 3, 4]. To test the first triplet, arr[j] = arr[i] = 3-2 = 1 and arr[k] = arr[j] = 4-3 = 1.Function DescriptionComplete the beautifulTriplets function in the editor below.beautifulTriplets has the following parameters:int d: the value to matchint arr[n]: the sequence, sorted ascendingReturnsint: the number of beautiful tripletsInput FormatThe first line contains 2 space-separated integers, n and d, the length of the sequence andthe beautiful difference.The second line contains n space-separated integers arr[i].Sample InputSTDIN Function ----- -------- 7 3 arr[] size n = 7, d = 3 1 2 4 5 7 8 10 arr = [1, 2, 4, 5, 7, 8, 10] Sample Output3ExplanationThere are many possible triplets (arr[i], arr[j], arr[k]), but our only beautiful triplets are(1,4,7), (4, 7, 10) and (2, 5, 8) by value, not index. Please see the equations below:7-4 4-1=3=d 10-77-4=3=d 8 5 5 23 dRecall that a beautiful triplet satisfies the following equivalence relation:arr[j] = arr[i] = arr[k] – arr[j] = d where i < j < k.HackerRank Beautiful Triplets Problem SolutionBeautiful Triplets C Solution#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> int main() { int n, d, i, j, k, nb = 0; int *arr; scanf("%d %d", &n, &d); arr = malloc(n * sizeof(int)); for(i = 0; i < n; i++) { scanf("%d", &arr[i]); } for(j = 1; j < n - 1; j++) { for(i = 0; i < j; i++) { if(arr[j] - arr[i] == d) { for(k = j + 1; k < n; k++) { if(arr[k] - arr[j] == d) { nb++; } } } } } printf("%d", nb); return 0; }Beautiful Triplets C++ Solution#include <bits/stdc++.h> using namespace std; #define REPU(i, a, b) for (int i = (a); i < (b); ++i) #define REPD(i, a, b) for (int i = (a); i > (b); --i) #define MEM(a, x) memset(a, x, sizeof(a)) #define ALL(a) a.begin(), a.end() #define UNIQUE(a) a.erase(unique(ALL(a)), a.end()) typedef long long ll; const int MOD = 1000000007; template<class T> inline T tmin(T a, T b) { return (a < b) ? a : b; } template<class T> inline T tmax(T a, T b) { return (a > b) ? a : b; } template<class T> inline void amax(T &a, T b) { if (b > a) a = b; } template<class T> inline void amin(T &a, T b) { if (b < a) a = b; } template<class T> inline T tabs(T a) { return (a > 0) ? a : -a; } template<class T> T gcd(T a, T b) { while (b != 0) { T c = a; a = b; b = c % b; } return a; } int main(int argc, char *argv[]) { ios_base::sync_with_stdio(false); int n, d; cin >> n >> d; vector<int> a(n); map<int, int> mp; REPU(i, 0, n) { cin >> a[i]; mp[a[i]] = 1; } int ans = 0; REPU(i, 0, n) { if (mp.count(a[i] - d) > 0 && mp.count(a[i] + d) > 0) ans++; } cout << ans << endl; return 0; }Beautiful Triplets C Sharp Solutionusing System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static void Main(String[] args) { int[] a = Array.ConvertAll(Console.ReadLine().Split(' '), Int32.Parse); int d = a[1]; int count = 0; List<int> seq = Console.ReadLine().Split(' ').Select(Int32.Parse).ToList(); foreach(int s in seq) { if(seq.Contains(s+d) && seq.Contains(s+d+d)) {count++;} } Console.WriteLine(count); } }Beautiful Triplets Java Solutionimport java.io.*; import java.math.*; import java.security.*; import java.text.*; import java.util.*; import java.util.concurrent.*; import java.util.function.*; import java.util.regex.*; import java.util.stream.*; import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.toList; class Result { /* * Complete the 'beautifulTriplets' function below. * * The function is expected to return an INTEGER. * The function accepts following parameters: * 1. INTEGER d * 2. INTEGER_ARRAY arr */ public static int beautifulTriplets(int d, List<Integer> arr) { Map<Integer, Boolean> booleanMap = new HashMap<>(); arr.forEach(integer -> { booleanMap.put(integer, true); }); int t = 0; for (Integer integer : arr) { if (Boolean.TRUE.equals(booleanMap.get(integer + d)) && Boolean.TRUE.equals(booleanMap.get(integer + d + d))) { t++; } } return t; } } public class Solution { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH"))); String[] firstMultipleInput = bufferedReader.readLine().replaceAll("\\s+$", "").split(" "); int n = Integer.parseInt(firstMultipleInput[0]); int d = Integer.parseInt(firstMultipleInput[1]); List<Integer> arr = Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" ")) .map(Integer::parseInt) .collect(toList()); int result = Result.beautifulTriplets(d, arr); bufferedWriter.write(String.valueOf(result)); bufferedWriter.newLine(); bufferedReader.close(); bufferedWriter.close(); } }Beautiful Triplets JavaScript Solutionfunction processData(input) { //Enter your code here } process.stdin.resume(); process.stdin.setEncoding("ascii"); _input = ""; process.stdin.on("data", function (input) { _input += input; }); process.stdin.on("end", function () { const [[_, d], n] = _input.split('\n').map(s => s.split(' ').map(Number)); let cnt = 0; for(let i=0; i<n.length-2;i++) { const ii = n[i]; for(let j=i+1; j<n.length-1;j++) { const jj = n[j]; if (jj-ii === d) { for(let k=j+1; k<n.length;k++) { const kk = n[k]; if (kk-jj === d) { cnt++; } } } } } console.log(cnt) });Beautiful Triplets Python Solutionfrom collections import defaultdict n, d = [int(i) for i in input().strip().split()] arr = [int(i) for i in input().strip().split()] num_to_index = defaultdict(list) for i, num in enumerate(arr): num_to_index[num].append(i) results = [] d2 = d + d for num in sorted(num_to_index): a,b,c = num, num+d, num+d2 if b in num_to_index and c in num_to_index: mx = max(num_to_index[c]) mn = min(num_to_index[a]) if mx > mn and any(mx > i > mn for i in num_to_index[b]): results.append((a,b,c)) print(len(results)) Other SolutionsHackerRank Minimum Distances Problem SolutionHackerRank Halloween Sale Problem Solution c C# C++ HackerRank Solutions java javascript python CcppCSharpHackerrank Solutionsjavajavascriptpython
You are so cool! I do not believe I’ve truly read a single thing like that before. So great to discover somebody with genuine thoughts on this topic. Really.. thank you for starting this up. This web site is one thing that’s needed on the internet, someone with a bit of originality.