Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- string foo(int n, string s)
- {
- string ans;
- while (n > 0)
- {
- n--;
- ans += s;
- }
- return ans;
- }
- int main()
- {
- string s;
- stack <pair <char, int> > a;
- cin >> s;
- for (int i = 0; i < s.size(); ++i)
- {
- if (s[i] == '(')
- a.push({'(', i});
- else
- if (s[i] == ')')
- {
- int size_new = s.size();
- int begin = a.top().second + 1;
- int m = 0;
- for (begin; begin < i; ++begin)
- {
- if('0' <= s[begin] && s[begin] <= '9')
- {
- m *= 10;
- m += (s[begin] - '0');
- }
- else
- break;
- }
- string res = foo(m, s.substr(begin, i - begin));
- s.replace(a.top().second, i - a.top().second + 1, res);
- a.pop();
- i += s.size() - size_new;
- }
- }
- cout << s;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement