#include
#include
#include
#include
#include
int main() {
// Входные данные
std::vector input = {2, 8, 4, 1, 2, 8, 8, 1, 2, 8};
// Создаем стек и заполняем его входными данными
std::stack s;
for (int num : input) {
s.push(num);
}
// Найдем максимальное и минимальное числа
int maxNum = *std::max_element(input.begin(), input.end());
int minNum = *std::min_element(input.begin(), input.end());
// Создаем очередь для результата
std::queue result;
// Используем временный стек для восстановления порядка
std::stack tempStack;
while (!s.empty()) {
tempStack.push(s.top());
s.pop();
}
// Создаем стек для обработки
while (!tempStack.empty()) {
int current = tempStack.top();
tempStack.pop();
if (current == maxNum) {
result.push(minNum);
}
result.push(current);
}
// Вывод результата
while (!result.empty()) {
std::cout << result.front() << " ";
result.pop();
}
std::cout << std::endl;
return 0;
}
Тема: стеки и очереди.
Создать очередь, содержащую целые числа. После всех чисел, равных минимальному числу, вставить последний нечетный элемент. Например, было 2 8 2 1 6 8 8 1 2 2 8 2 1 3. Стало 2 8 2 1 3 6 8 8 1 3 2 2 8 2 1 3