Найдите два различных наименьших элемента в числовой последовательности.
Входные данные
В первой строке находится количество элементов 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));
}
}