Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. string foo(int n, string s)
  6. {
  7. string ans;
  8. while (n > 0)
  9. {
  10. n--;
  11. ans += s;
  12. }
  13. return ans;
  14. }
  15.  
  16. int main()
  17. {
  18. string s;
  19. stack <pair <char, int> > a;
  20.  
  21. cin >> s;
  22.  
  23. for (int i = 0; i < s.size(); ++i)
  24. {
  25. if (s[i] == '(')
  26. a.push({'(', i});
  27. else
  28. if (s[i] == ')')
  29. {
  30. int size_new = s.size();
  31. int begin = a.top().second + 1;
  32. int m = 0;
  33. for (begin; begin < i; ++begin)
  34. {
  35. if('0' <= s[begin] && s[begin] <= '9')
  36. {
  37. m *= 10;
  38. m += (s[begin] - '0');
  39. }
  40. else
  41. break;
  42. }
  43.  
  44. string res = foo(m, s.substr(begin, i - begin));
  45. s.replace(a.top().second, i - a.top().second + 1, res);
  46. a.pop();
  47. i += s.size() - size_new;
  48. }
  49. }
  50.  
  51. cout << s;
  52.  
  53. return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement