Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main() {
- string s;
- getline(cin, s);
- vector<pair<string, int>> parsed;
- for (int i = 0; i < sz(s); ++i) {
- string now;
- if (s[i] == '<') {
- if (s[i + 1] == '/') {
- parsed.push_back({now + s[i + 2], 2});
- i += 3;
- } else {
- parsed.push_back({now + s[i + 1], 1});
- i += 2;
- }
- } else if ('a' <= s[i] && s[i] <= 'z') {
- while (i < sz(s) && 'a' <= s[i] && s[i] <= 'z') {
- now += s[i]; ++i;
- }
- --i;
- parsed.push_back({now, 0});
- } else {
- while (i < sz(s) && s[i] == ' ') {
- now += s[i]; ++i;
- }
- --i;
- parsed.push_back({now, 0});
- }
- }
- int m = sz(parsed);
- string t;
- for (int i = 0; i < m; ++i) {
- if (parsed[i].se == 0) {
- t += parsed[i].fi;
- } else {
- int cur = 1, j = i; ++i;
- while (i < m && cur) {
- if (parsed[i].fi == parsed[j].fi) {
- if (parsed[i].se == 1) {
- ++cur;
- } else {
- --cur;
- }
- }
- ++i;
- }
- --i;
- }
- }
- cout << t << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement