Решение задачи Вторая порядковая статистика с Codeforces

С пояснением   Просмотров: 31


Однажды Васе понадобилось найти вторую порядковую статистику последовательности целых чисел, то есть такое значение, которое попадет на второе место после сортировки всех различных элементов данной последовательности. Другими словами, надо найти наименьший элемент строго больший минимума. Помогите Васе справиться с этой задачей.

Код

 #include<iostream>
#include<set>
using namespace std;
main()
{
    int n;
    set <int> s;
    cin >> n;
    while(cin >> n) s.insert(n);
    if (s.size() < 2) return cout << "NO",0;
    s.erase(*(s.begin()));
    cout<<*(s.begin());
 
}

         

Администратор Photo Автор: Администратор


В задаче требовалось найти минимальный из всех элементов заданной последовательности, которые строго больше минимального во всей последовательности или сообщить, что его не существует. Разумеется, решений может быть очень много, но один из самых простых способов - считать всю последовательность в массив, отсортировать его и вывести первый элемент, не совпадающий с предыдущим. Если все элементы одинаковы, значит второго по величине не существует.


Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться