Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

С++ задача на программирование

Максим Евсюткин Ученик (210), закрыт 2 дня назад
Второй минимум
Последовательность состоит из натуральных чисел и завершается числом 0
. Определите значение второго минимального по величине элемента в этой последовательности, то есть элемента, который будет наименьшим, если из последовательности удалить наименьший элемент.

Последнее число 0
не учитывается. Гарантируется, что в последовательности есть хотя бы два элемента (кроме завершающего числа 0
).

Входные данные

На вход подаётся последовательность целых неотрицательных чисел, заканчивающаяся нулём. Все числа в последовательности по значению не превосходят 109
.

Выходные данные

Выведите ответ задачи.

Примеры
Там Ввод 1
7
9
0
а вывод 7 и чтоб работало с 3
2
2
1
1
0 а вывод 1
Лучший ответ
Николай Веселуха Высший разум (377956) 4 дня назад
 #include <iostream> 
#include <set>

using namespace std;

class Result {
static constexpr size_t count = 2;
multiset<int> nums;
public:
void add(const int value) {
nums.insert(value);
if (count < nums.size()) {
nums.erase(prev(nums.end()));
}
}
int get_second() const {
return *prev(nums.end());
}
};

int main() {
Result result;
int value;
while (true) {
cin >> value;
if (!value) break;
result.add(value);
}
cout << result.get_second() << '\n';
}
Остальные ответы
Юлиана Гарина Знаток (436) 4 дня назад
чтобы найти второй минимум просто запоминаем два самых маленьких числа и выводим второй
Максим ЕвсюткинУченик (210) 4 дня назад
спасибо а можно ли кодок так более понятно для меня
Похожие вопросы