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