Найдите два различных наименьших элемента в числовой
последовательности.
Вход. В первой строке находится количество элементов n (3 ≤ n ≤ 1000) последовательности. Далее заданы n чисел, каждое из которых не превышает
2 * 109 по абсолютному значению.
Выход. Выведите в
возрастающем порядке два различных наименьших элемента последовательности.
Известно, что они всегда существуют.
Пример
входа |
Пример
выхода |
7 2 10 2 3 -1
5 -1 |
-1 2 |
массивы
Прочитаем
входную последовательность в массив. Найдем минимальный элемент min1. Вторым минимальным
элементом min2 будет
наименьший элемент массива, не равный min1.
Входную последовательность храним в массиве m.
int m[1001];
Читаем входной массив и находим минимальный элемент min1.
scanf("%d",&n);
min1 = min2 =
2000000000;
for(i = 0; i < n; i++)
{
scanf("%d",&m[i]);
if (m[i] <
min1) min1 = m[i];
}
Вторым
минимальным элементом min2
будет наименьший элемент массива, не равный min1.
for(i = 0; i < n; i++)
if (m[i] <
min2 && m[i] != min1) min2 = m[i];
Выводим два различных наименьших элемента последовательности.
printf("%d %d\n",min1,min2);
import java.util.*;
public class Main
{
public static void
main(String[] args)
{
Scanner con = new
Scanner(System.in);
int min1, min2;
min1 = min2 =
2000000000;
int n = con.nextInt();
int m[] = new int[n];
for(int i = 0;
i < n; i++)
{
m[i] = con.nextInt();
if (m[i]
< min1) min1 = m[i];
}
for(int i = 0;
i < n; i++)
if (m[i]
< min2 && m[i] != min1) min2 = m[i];
System.out.println(min1 + "
" + min2);
con.close();
}
}
import sys
n = int(input())
lst = [];
for line in sys.stdin:
for var in line.split():
lst.append(int(var))
min1 = min(lst)
min2 = sys.maxsize
for x in lst:
if (x < min2 and x != min1): min2
= x
print(min1, min2)