profile
Размещено 3 года назад по предмету Информатика от regressor04

Очередь с поддержкой минимума
Реализуйте очередь с поддержкой минимума.

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

Первая строка входных данных содержит число n — количество операций с очередью. В каждой следующей строке содержится число ai (0≤ai≤10000). Если ai>0, то это число необходимо добавить в очередь. Если ai=0, то это запрос на удаление элемента из очереди.

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

На каждый запрос удаления элемента из очереди необходимо вывести значение минимального элемента очереди (учитывая значение удаляемого элемента). Если запрос удаления вызывается на пустой очереди, то необходимо вывести −1.

Примеры
Ввод
9
5
4
3
6
0
0
0
0
0
Вывод
3
3
3
6
-1
Решать на C++

  1. Ответ на вопрос
    Ответ на вопрос дан ooooor642

    Ответ:

    Объяснение:

    #include <iostream>

    using namespace std;

    const int max_size = 2000;

    class Queue //класс Очередь

    {

    int q[max_size]; //массив чисел

    int left = 0, right = 0; //первый(крайний левый) и последний(крайний правый) элементы массива

    public:

    void add(int a); //функция для добаления элемента в очередь

    void getMinNum(); //функция для получения минимального числа в очереди

    };

    void Queue::add(int a)

    {

    if (a != 0)

    { //если введено число больше 0

    q[right] = a;

    right++;

    }

    else if (left == right)

    { //если первый и последний элементы совпадают, очередь пуста

    cout << -1 << "n";

    }

    else

    { //если введен '0'

    this->getMinNum();

    left++;

    }

    }

    void Queue::getMinNum()

    {

    int minID = left;

    for (int i = left; i < right; i++)

    if (q[minID] > q[i])

    minID = i;

    cout << q[minID] << "n";

    }

    int main()

    {

    int n; //количество операций

    Queue q; //объект класса Очередь

    int num;

    cin >> n;

    for (int i = 0; i < n; i++)

    {

    cin >> num; //вводим число

    q.add(num);

    }

    return 0;

    }

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.