``` using System; using System.Numerics; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; class Problem { // Check if in given list of numbers, are any two numbers closer to each other than // given threshold. // >>> HasCloseElements((new List<float>(new float[]{(float)1.0f, (float)2.0f, (float)3.0f})), (0.5f)) // (false) // >>> HasCloseElements((new List<float>(new float[]{(float)1.0f, (float)2.8f, (float)3.0f, (float)4.0f, (float)5.0f, (float)2.0f})), (0.3f)) // (true) public static bool HasCloseElements(List<float> numbers, float threshold) { numbers.Sort(); for (int i = 0; i < numbers.Count - 1; i++) { if (Math.Abs(numbers[i] - numbers[i + 1]) < threshold) { return true; } } return false; } public static void Main(string[] args) { Debug.Assert(HasCloseElements((new List<float>(new float[] { (float)1.0f, (float)2.0f, (float)3.9f, (float)4.0f, (float)5.0f, (float)2.2f })), (0.3f)) == (true)); Debug.Assert(HasCloseElements((new List<float>(new float[] { (float)1.0f, (float)2.0f, (float)3.9f, (float)4.0f, (float)5.0f, (float)2.2f })), (0.05f)) == (false)); Debug.Assert(HasCloseElements((new List<float>(new float[] { (float)1.0f, (float)2.0f, (float)5.9f, (float)4.0f, (float)5.0f })), (0.95f)) == (true)); Debug.Assert(HasCloseElements((new List<float>(new float[] { (float)1.0f, (float)2.0f, (float)5.9f, (float)4.0f, (float)5.0f })), (0.8f)) == (false)); Debug.Assert(HasCloseElements((new List<float>(new float[] { (float)1.0f, (float)2.0f, (float)3.0f, (float)4.0f, (float)5.0f, (float)2.0f })), (0.1f)) == (true)); Debug.Assert(HasCloseElements((new List<float>(new float[] { (float)1.1f, (float)2.2f, (float)3.1f, (float)4.1f, (float)5.1f })), (1.0f)) == (true)); Debug.Assert(HasCloseElements((new List<float>(new float[] { (float)1.1f, (float)2.2f, (float)3.1f, (float)4.1f, (float)5.1f })), (0.5f)) == (false)); } } ```