fbpx

Problema #875 – Stiva – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Să se scrie un program care gestionează o stivă de numere întregi. Inițial stiva este vidă. Programul va citi de la tastatură o listă de operații, care pot fi:

  • push X – adaugă valoarea întreagă X pe stivă;
  • pop – elimină elementul din vârful stivei;
  • top – afișează elementul din vârful stivei.

Programul va realiza asupra stivei operațiile citite, în ordine. Afișările se fac pe ecran, câte o valoare pe linie.

Date de intrare

Programul citește de la tastatură un număr n, apoi cele n operații,

Date de ieșire

Programul va afișa pe ecran numere rezultat ale operațiilor top, câte unul pe o linie.

Restricții și precizări

  • stiva nu va conține la un moment dat mai mult de 1000 elemente
  • elementele stivei vor fi cuprinse între -1.000.000 și 1.000.000
  • dacă la un moment dat se aplică operația pop și stiva nu conține niciun element, operația nu are efect
  • dacă la un moment dat se aplică operația top și stiva nu conține niciun element, operația nu are efect (nu se afișează nimic)

Exemplu

Intrare

12
push 5
push 4
top 
push 7 
push -5
pop
top
pop
top
push 11
top
pop

Ieșire

4
7
4
11
#include <bits/stdc++.h>

using namespace std;

int main()
{
    stack<int>s;
    int c , x;
    string op;
    cin >> c;
    for(int i = 1 ; i <= c ; i++)
    {
        cin >> op;
        if(op == "push")
        {
            cin >> x;
            s.push(x);
        }
        else if(op == "top")
            cout << s.top() << '\n';
        else s.pop();
    }
}
Comentarii

S-ar putea sa iti placa