Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stack>
- #include <utility>
- #include <vector>
- using namespace std;
- int main()
- {
- stack<int> stos;
- vector<stack<int>> dane;
- unsigned n;
- cin >> n;
- pair<char, int> tablica[n];
- for(unsigned i = 0; i < n; ++i)
- {
- cin >> tablica[i].first;
- if(tablica[i].first == '-')
- continue;
- cin >> tablica[i].second;
- }
- // pierwsza operacja:
- if(tablica[0].first == '+')
- stos.push(tablica[0].second);
- dane.push_back(stos);
- // kolejne operacje:
- for(unsigned i = 1; i < n; ++i)
- {
- switch(tablica[i].first)
- {
- case '+':
- stos = dane[i - 1];
- stos.push(tablica[i].second);
- break;
- case '-':
- stos = dane[i - 1];
- stos.pop();
- break;
- case '*':
- if(i - tablica[i].second < 1)
- stos = dane[0];
- else
- stos = dane[i - tablica[i].second - 1];
- }
- dane.push_back(stos);
- }
- for(unsigned i = 0; i < n; ++i)
- {
- if(dane[i].size() == 0)
- cout << -1 << endl;
- else
- cout << dane[i].top() << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement