Advertisement
nicuvlad76

atomi pbinfo

Nov 27th, 2018
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. #include <iostream>
  2. #include <stack>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. char s[256];
  9. int cif,sum,i;
  10. stack <int> A,B;
  11. cin>>s;
  12. for (i=0; s[i]!=0; i++)
  13. {
  14. if (s[i]=='(')
  15. {
  16. A.push(-1);
  17. B.push(-1);
  18. }
  19. else
  20. if (s[i]=='A')
  21. {
  22. if (s[i+1]>='0' && s[i+1]<='9')
  23. {
  24. cif=0;
  25. while (s[i+1]!=0 && s[i+1]>='0' && s[i+1]<='9')
  26. {
  27. cif=cif*10+(s[i+1]-'0');
  28. i++;
  29. }
  30. A.push(cif);
  31. }
  32. else A.push(1);
  33. }
  34. else
  35. if (s[i]=='B')
  36. {
  37. if (s[i+1]>='0' && s[i+1]<='9')
  38. {
  39. cif=0;
  40. while (s[i+1]!=0 && s[i+1]>='0' && s[i+1]<='9')
  41. {
  42. cif=cif*10+(s[i+1]-'0');
  43. i++;
  44. }
  45. B.push(cif);
  46. }
  47. else B.push(1);
  48. }
  49. else
  50. {
  51. if (s[i+1]>='0' && s[i+1]<='9')
  52. {
  53. cif=0;
  54. while (s[i+1]!=0 && s[i+1]>='0' && s[i+1]<='9')
  55. {
  56. cif=cif*10+(s[i+1]-'0');
  57. i++;
  58. }
  59. }
  60. else cif=1;
  61. sum=0;
  62. while (A.top()!=-1)
  63. {
  64. A.top()=cif*A.top();
  65. sum=sum+A.top();
  66. A.pop();
  67. }
  68. A.pop();
  69. A.push(sum);
  70. sum=0;
  71. while (B.top()!=-1)
  72. {
  73. B.top()=cif*B.top();
  74. sum=sum+B.top();
  75. B.pop();
  76. }
  77. B.pop();
  78. B.push(sum);
  79. }
  80. }
  81. sum=0;
  82. while (!A.empty())
  83. {
  84. if (A.top()>=0) sum=sum+A.top();
  85. A.pop();
  86. }
  87. cout<<sum<<" ";
  88. sum=0;
  89. while (!B.empty())
  90. {
  91. if (B.top()>=0) sum=sum+B.top();
  92. B.pop();
  93. }
  94. cout<<sum;
  95. return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement