Два мінімуми

Знайдіть два різні найменші елементи у числовій послідовності.

Вхідні дані

У першому рядку знаходиться кількість елементів n (3 ≤ n ≤ 1000) послідовності. Далі задано n чисел, кожне з яких за модулем не перевищує 2 * 109.

Вихідні дані

Виведіть у зростаючому порядку два різні найменші числа послідовності. Відомо, що вони завжди існують.

Алгоритм розв’язку задачі

  • Оператором Distinct видаляємо дублікати елементів;
  • Сортуємо список за зростанням;
  • Отримуємо 2 перші елементи списку.

Розв’язок

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        var n = int.Parse(Console.ReadLine());
        var p = new List<long>();
        
        while (n > p.Count())
        {
            p.AddRange(Array.ConvertAll(Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries),
            s => long.Parse(s)));
        }

        p = p.Distinct().OrderBy(x => x).Take(2).ToList();        

        Console.WriteLine(string.Join(" ", p));
    }
}

Дивіться також: