Advertisement
MeehoweCK

Untitled

Feb 15th, 2021
605
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <stack>
  3. #include <utility>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     stack<int> stos;
  11.     vector<stack<int>> dane;
  12.     unsigned n;
  13.     cin >> n;
  14.     pair<char, int> tablica[n];
  15.     for(unsigned i = 0; i < n; ++i)
  16.     {
  17.         cin >> tablica[i].first;
  18.         if(tablica[i].first == '-')
  19.             continue;
  20.         cin >> tablica[i].second;
  21.     }
  22.  
  23.     // pierwsza operacja:
  24.     if(tablica[0].first == '+')
  25.         stos.push(tablica[0].second);
  26.     dane.push_back(stos);
  27.  
  28.     // kolejne operacje:
  29.     for(unsigned i = 1; i < n; ++i)
  30.     {
  31.         switch(tablica[i].first)
  32.         {
  33.         case '+':
  34.             stos = dane[i - 1];
  35.             stos.push(tablica[i].second);
  36.             break;
  37.         case '-':
  38.             stos = dane[i - 1];
  39.             stos.pop();
  40.             break;
  41.         case '*':
  42.             if(i - tablica[i].second < 1)
  43.                 stos = dane[0];
  44.             else
  45.                 stos = dane[i - tablica[i].second - 1];
  46.         }
  47.         dane.push_back(stos);
  48.     }
  49.  
  50.     for(unsigned i = 0; i < n; ++i)
  51.     {
  52.         if(dane[i].size() == 0)
  53.             cout << -1 << endl;
  54.         else
  55.             cout << dane[i].top() << endl;
  56.     }
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement