Advertisement
Spocoman

2. Stack Sum

Jan 9th, 2024 (edited)
730
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4. #include <stack>
  5. #include <queue>
  6.  
  7. using namespace std;
  8.  
  9. int main() {
  10.     string line;
  11.     getline(cin, line);
  12.  
  13.     istringstream ss(line);
  14.  
  15.     stack<int> numbers;
  16.  
  17.     int number;
  18.  
  19.     while (ss >> number) {
  20.         numbers.push(number);
  21.     }
  22.    
  23.     queue<string> q;
  24.  
  25.     while (true) {
  26.         getline(cin, line);
  27.        
  28.         istringstream ss(line);
  29.  
  30.         string s;
  31.  
  32.         while (ss >> s) {
  33.             q.push(s);
  34.         }
  35.  
  36.         string command = q.front();
  37.         q.pop();
  38.  
  39.         if (command == "end") {
  40.             break;
  41.         }
  42.         else if (command == "add") {
  43.             while (!q.empty()) {
  44.                 numbers.push(stoi(q.front()));
  45.                 q.pop();
  46.             }
  47.         }
  48.         else {
  49.             int num = stoi(q.front());
  50.             q.pop();
  51.             if (numbers.size() > num) {
  52.                 while (!numbers.empty() && num-- != 0) {
  53.                     numbers.pop();
  54.                 }
  55.             }
  56.         }
  57.     }
  58.    
  59.     int sum = 0;
  60.  
  61.     while (!numbers.empty()) {
  62.         sum += numbers.top();
  63.         numbers.pop();
  64.     }
  65.  
  66.     cout << sum << endl;
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement