fork download
  1. #include <iostream>
  2. //#include <fstream>
  3. #include <sstream>
  4. #include <string>
  5. #include <stack>
  6. using namespace std;
  7.  
  8. struct Stack {
  9. void solution(const char *input_path, const char *output_path);
  10. };
  11.  
  12. void Stack::solution(const char *input_path, const char *output_path) {
  13.  
  14. /*
  15.   ifstream inputFile (input_path);
  16.   ofstream outputFile (output_path);
  17.  
  18.   if (!inputFile.is_open() || !outputFile.is_open()) {
  19.   return;
  20.   }
  21. */
  22.  
  23. istream &inputFile = cin;
  24. ostream &outputFile = cout;
  25.  
  26. stack<int> stk;
  27. string line;
  28.  
  29. while (getline (inputFile, line)) {
  30. istringstream iss (line);
  31. char cmd;
  32.  
  33. if (!(iss >> cmd)) {
  34. continue;
  35. }
  36.  
  37. switch (cmd) {
  38. case 's': {
  39. stk = stack<int>();
  40. // alternatively:
  41. // stack<int>().swap(stk);
  42. break;
  43. }
  44.  
  45. case 'u': {
  46. int value;
  47. if (iss >> value) {
  48. stk.push(value);
  49. }
  50. break;
  51. }
  52.  
  53. case 'o': {
  54. if (!stk.empty()) {
  55. outputFile << stk.top() << '\n';
  56. stk.pop();
  57. }
  58. break;
  59. }
  60. }
  61. }
  62. }
  63.  
  64. int main() {
  65. Stack s;
  66. s.solution("", "");
  67. }
Success #stdin #stdout 0s 4904KB
stdin
s
u 1
u 2
u 3
o 
o
o
stdout
3
2
1