From 80ae33d3d0b99824d6afd1ce63d9746daf679aac Mon Sep 17 00:00:00 2001
From: Matej Focko <me@mfocko.xyz>
Date: Mon, 14 Apr 2025 13:06:39 +0200
Subject: [PATCH] =?UTF-8?q?cs:=20add=20=C2=AB1534.=20Count=20Good=20Triple?=
 =?UTF-8?q?ts=C2=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

URL:	https://leetcode.com/problems/count-good-triplets/
Signed-off-by: Matej Focko <me@mfocko.xyz>
---
 cs/count-good-triplets.cs | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100644 cs/count-good-triplets.cs

diff --git a/cs/count-good-triplets.cs b/cs/count-good-triplets.cs
new file mode 100644
index 0000000..10aa8f1
--- /dev/null
+++ b/cs/count-good-triplets.cs
@@ -0,0 +1,22 @@
+public class Solution {
+    private IEnumerable<(int, int, int)> Triplets(int n) =>
+        Enumerable.Range(0, n).SelectMany(
+            i => Enumerable.Range(i + 1, n - i - 1).SelectMany(
+                j => Enumerable.Range(j + 1, n - j - 1).Select(
+                    k => (i, j, k)
+                )
+            )
+        );
+
+    public int CountGoodTriplets(int[] arr, int a, int b, int c) =>
+        Triplets(arr.Length)
+        .Select(idxs => {
+            var (i, j, k) = idxs;
+            return (arr[i], arr[j], arr[k]);
+        })
+        .Where(nums => {
+            var (x, y, z) = nums;
+            return Math.Abs(x - y) <= a && Math.Abs(y - z) <= b && Math.Abs(x - z) <= c;
+        })
+        .Count();
+}